求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日)



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

重庆唯远实业有限公司
江苏苏美达船舶工程有限公司
上海启门机电有限公司
小洋人生物乳业集团有限公司
沈阳鼎冷机电设备有限公司
嘉柏(中国)国际货运代理有限公司
广州宝洁有限公司
烟台华科食品有限公司
艾来得机械(上海)有限公司
上海晓舟船舶配件有限公司
上海力弘包装器材有限公司
...全文
2053 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
黄_瓜 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日)这样的去掉?

(中国),(上海)这样的不去掉?

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧