求sql语句,去除括号及括号内内容

liuwenxi 2010-10-19 11:09:35
如下:

重庆唯远实业有限公司(2009年01月05日)
江苏苏美达船舶工程有限公司(2009年01月05日)
上海启门机电有限公司(2009年01月04日)
小洋人生物乳业集团有限公司(2009年01月04日)
沈阳鼎冷机电设备有限公司(2009年01月04日)
嘉柏(中国)国际货运代理有限公司(2008年12月31日)
广州宝洁有限公司(2008年12月31日)
烟台华科食品有限公司(2008年12月31日)
艾来得机械(上海)有限公司(2008年12月31日)
上海晓舟船舶配件有限公司(2008年12月31日)
上海力弘包装器材有限公司(2008年12月31日)



(需要将字符串结束位置的括号及括号内内容统一去掉,变成以下形式)

重庆唯远实业有限公司
江苏苏美达船舶工程有限公司
上海启门机电有限公司
小洋人生物乳业集团有限公司
沈阳鼎冷机电设备有限公司
嘉柏(中国)国际货运代理有限公司
广州宝洁有限公司
烟台华科食品有限公司
艾来得机械(上海)有限公司
上海晓舟船舶配件有限公司
上海力弘包装器材有限公司
...全文
858 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
小_爱 2010-10-19
[Quote=引用 12 楼 liuwenxi 的回复:]
感谢4楼,已经完满解决问题!!!

还有,我很喜欢你回复的形式,请问是用的什么工具? 怎么会这么快就能把处理问题的过程都贴在一个回复中来呢??

恳请指教!
[/Quote]http://blog.csdn.net/Limpire/archive/2008/07/07/2623016.aspx
回复
Rotel-刘志东 2010-10-19
-->>测试数据
create table tb(col varchar(50))
insert into tb values('重庆唯远实业有限公司(2009年01月05日)')
insert into tb values('江苏苏美达船舶工程有限公司(2009年01月05日)')
insert into tb values('上海启门机电有限公司(2009年01月04日)')
insert into tb values('小洋人生物乳业集团有限公司(2009年01月04日)')
insert into tb values('沈阳鼎冷机电设备有限公司(2009年01月04日)')
insert into tb values('嘉柏(中国)国际货运代理有限公司(2008年12月31日)')
insert into tb values('广州宝洁有限公司(2008年12月31日)')
insert into tb values('烟台华科食品有限公司(2008年12月31日)')
insert into tb values('艾来得机械(上海)有限公司(2008年12月31日)')
insert into tb values('上海晓舟船舶配件有限公司(2008年12月31日)')
insert into tb values('上海力弘包装器材有限公司(2008年12月31日)')
--查询
select reverse(stuff(reverse(col), 1, charindex('(', reverse(col)), '')) from #
--结果
/*

name
----------------------------------------------
重庆唯远实业有限公司
江苏苏美达船舶工程有限公司
上海启门机电有限公司
小洋人生物乳业集团有限公司
沈阳鼎冷机电设备有限公司
嘉柏(中国)国际货运代理有限公司
广州宝洁有限公司
烟台华科食品有限公司
艾来得机械(上海)有限公司
上海晓舟船舶配件有限公司
上海力弘包装器材有限公司

(11 行受影响)


*/






回复
liuwenxi 2010-10-19
感谢4楼,已经完满解决问题!!!

还有,我很喜欢你回复的形式,请问是用的什么工具? 怎么会这么快就能把处理问题的过程都贴在一个回复中来呢??

恳请指教!
回复
Mr_Nice 2010-10-19
[Quote=引用 8 楼 dawugui 的回复:]

如果你能保证你数据格式准确,标准,这样即可.
SQL code
create table tb(col varchar(50))
insert into tb values('重庆唯远实业有限公司(2009年01月05日)')
insert into tb values('江苏苏美达船舶工程有限公司(2009年01月05日)')
insert into tb values('上海启门机电有限……
[/Quote]


select left(col,len(col) - 13) from tb

回复
siegebaoniu 2010-10-19
先将字符串倒置,再查第一个()并去掉,最后再倒过来。
回复
dawugui 2010-10-19
如果你能保证你数据格式准确,标准,这样即可.
create table tb(col varchar(50))
insert into tb values('重庆唯远实业有限公司(2009年01月05日)')
insert into tb values('江苏苏美达船舶工程有限公司(2009年01月05日)')
insert into tb values('上海启门机电有限公司(2009年01月04日)')
insert into tb values('小洋人生物乳业集团有限公司(2009年01月04日)')
insert into tb values('沈阳鼎冷机电设备有限公司(2009年01月04日)')
insert into tb values('嘉柏(中国)国际货运代理有限公司(2008年12月31日)')
insert into tb values('广州宝洁有限公司(2008年12月31日)')
insert into tb values('烟台华科食品有限公司(2008年12月31日)')
insert into tb values('艾来得机械(上海)有限公司(2008年12月31日)')
insert into tb values('上海晓舟船舶配件有限公司(2008年12月31日)')
insert into tb values('上海力弘包装器材有限公司(2008年12月31日)')
go

--查询
select left(col,len(col) - 13) from tb
/*

--------------------------------------------------
重庆唯远实业有限公司
江苏苏美达船舶工程有限公司
上海启门机电有限公司
小洋人生物乳业集团有限公司
沈阳鼎冷机电设备有限公司
嘉柏(中国)国际货运代理有限公司
广州宝洁有限公司
烟台华科食品有限公司
艾来得机械(上海)有限公司
上海晓舟船舶配件有限公司
上海力弘包装器材有限公司
*/

--更新
update tb
set col = left(col,len(col) - 13)
select * from tb
/*
col
--------------------------------------------------
重庆唯远实业有限公司
江苏苏美达船舶工程有限公司
上海启门机电有限公司
小洋人生物乳业集团有限公司
沈阳鼎冷机电设备有限公司
嘉柏(中国)国际货运代理有限公司
广州宝洁有限公司
烟台华科食品有限公司
艾来得机械(上海)有限公司
上海晓舟船舶配件有限公司
上海力弘包装器材有限公司

(所影响的行数为 11 行)
*/

drop table tb
回复
小_爱 2010-10-19
--> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([name] varchar(46))
insert [tb]
select '重庆唯远实业有限公司(2009年01月05日)' union all
select '江苏苏美达船舶工程有限公司(2009年01月05日)' union all
select '上海启门机电有限公司(2009年01月04日)' union all
select '小洋人生物乳业集团有限公司(2009年01月04日)' union all
select '沈阳鼎冷机电设备有限公司(2009年01月04日)' union all
select '嘉柏(中国)国际货运代理有限公司(2008年12月31日)' union all
select '广州宝洁有限公司(2008年12月31日)' union all
select '烟台华科食品有限公司(2008年12月31日)' union all
select '艾来得机械(上海)有限公司(2008年12月31日)' union all
select '上海晓舟船舶配件有限公司(2008年12月31日)' union all
select '上海力弘包装器材有限公司(2008年12月31日)'
go

-->测试开始
select left(name,patindex('%([0-9][0-9][0-9][0-9]年%',name)-1) as name from [tb]
/*

name
----------------------------------------------
重庆唯远实业有限公司
江苏苏美达船舶工程有限公司
上海启门机电有限公司
小洋人生物乳业集团有限公司
沈阳鼎冷机电设备有限公司
嘉柏(中国)国际货运代理有限公司
广州宝洁有限公司
烟台华科食品有限公司
艾来得机械(上海)有限公司
上海晓舟船舶配件有限公司
上海力弘包装器材有限公司

(11 行受影响)


*/
回复
duxing00 2010-10-19
SubString(字段, 0, length(字段)- 13) 试试
回复
--小F-- 2010-10-19
都好快啊 ..
回复
dawugui 2010-10-19
create table tb(col varchar(50))
insert into tb values('重庆唯远实业有限公司(2009年01月05日)')
insert into tb values('江苏苏美达船舶工程有限公司(2009年01月05日)')
insert into tb values('上海启门机电有限公司(2009年01月04日)')
insert into tb values('小洋人生物乳业集团有限公司(2009年01月04日)')
insert into tb values('沈阳鼎冷机电设备有限公司(2009年01月04日)')
insert into tb values('嘉柏(中国)国际货运代理有限公司(2008年12月31日)')
insert into tb values('广州宝洁有限公司(2008年12月31日)')
insert into tb values('烟台华科食品有限公司(2008年12月31日)')
insert into tb values('艾来得机械(上海)有限公司(2008年12月31日)')
insert into tb values('上海晓舟船舶配件有限公司(2008年12月31日)')
insert into tb values('上海力弘包装器材有限公司(2008年12月31日)')
go

--查询
select reverse(substring(reverse(col) ,charindex('(',reverse(col)) + 1 , len(col))) from tb
/*

--------------------------------------------------
重庆唯远实业有限公司
江苏苏美达船舶工程有限公司
上海启门机电有限公司
小洋人生物乳业集团有限公司
沈阳鼎冷机电设备有限公司
嘉柏(中国)国际货运代理有限公司
广州宝洁有限公司
烟台华科食品有限公司
艾来得机械(上海)有限公司
上海晓舟船舶配件有限公司
上海力弘包装器材有限公司
*/

--更新
update tb
set col = reverse(substring(reverse(col) ,charindex('(',reverse(col)) + 1 , len(col)))
select * from tb
/*
col
--------------------------------------------------
重庆唯远实业有限公司
江苏苏美达船舶工程有限公司
上海启门机电有限公司
小洋人生物乳业集团有限公司
沈阳鼎冷机电设备有限公司
嘉柏(中国)国际货运代理有限公司
广州宝洁有限公司
烟台华科食品有限公司
艾来得机械(上海)有限公司
上海晓舟船舶配件有限公司
上海力弘包装器材有限公司

(所影响的行数为 11 行)
*/

drop table tb
回复
SQLCenter 2010-10-19
--> 测试数据:#
if object_id('tempdb.dbo.#') is not null drop table #
create table #(col varchar(46))
insert into #
select '重庆唯远实业有限公司(2009年01月05日)' union all
select '江苏苏美达船舶工程有限公司(2009年01月05日)' union all
select '上海启门机电有限公司(2009年01月04日)' union all
select '小洋人生物乳业集团有限公司(2009年01月04日)' union all
select '沈阳鼎冷机电设备有限公司(2009年01月04日)' union all
select '嘉柏(中国)国际货运代理有限公司(2008年12月31日)' union all
select '广州宝洁有限公司(2008年12月31日)' union all
select '烟台华科食品有限公司(2008年12月31日)' union all
select '艾来得机械(上海)有限公司(2008年12月31日)' union all
select '上海晓舟船舶配件有限公司(2008年12月31日)' union all
select '上海力弘包装器材有限公司(2008年12月31日)'

select reverse(stuff(reverse(col), 1, charindex('(', reverse(col)), '')) from #

/*
------------------------------
重庆唯远实业有限公司
江苏苏美达船舶工程有限公司
上海启门机电有限公司
小洋人生物乳业集团有限公司
沈阳鼎冷机电设备有限公司
嘉柏(中国)国际货运代理有限公司
广州宝洁有限公司
烟台华科食品有限公司
艾来得机械(上海)有限公司
上海晓舟船舶配件有限公司
上海力弘包装器材有限公司
*/
回复
liuwenxi 2010-10-19
是的,只要求去掉结尾处的括号内容
回复
dawugui 2010-10-19
(2009年01月05日)这样的去掉?

(中国),(上海)这样的不去掉?
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2010-10-19 11:09
社区公告
暂无公告