SQL 2008表名老邓,有列ciname,想过滤列中的多组字符,求简洁语句

oiph 2014-01-11 10:23:25
列中我想去除三组字符:-N-G-1 、DCS、和()内的文字包含括弧。

我只知道用下述方法过滤,想得到更简洁的语句,求指点,谢谢!

update 老邓 set ciname=replace(ciname,'-N-G-1','');
update 老邓 set ciname=replace(ciname,'DCS','');
update 老邓 set ciname=CASE WHEN PATINDEX('%(%', ciname) > 0
THEN SUBSTRING(ciname, 0, PATINDEX('%(%', ciname)) ELSE ciname END ;
...全文
105 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
oiph 2014-01-11
  • 打赏
  • 举报
回复
谢谢,能简洁一点总是好的。
LongRui888 2014-01-11
  • 打赏
  • 举报
回复
你写的挺好的,应该也没什么太简单的办法,最多就是像下面那样,把3个语句合并成1个,不过看着有点长:
update 老邓 set ciname= CASE WHEN PATINDEX('%(%', ciname) > 0
                                  THEN replace(replace(SUBSTRING(ciname, 0, PATINDEX('%(%', ciname)),'-N-G-1',''),'DCS','') 
                             ELSE replace(replace(ciname,'-N-G-1',''),'DCS','') 
                        END; 

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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