删除字段里小括号括起来的内容.sql语句怎么写

如题所述

查询语句的效果

  with t_tmp as (  select 'abcdefg(123456)xyz' as f1)
  select f1,SUBSTRING(f1,1,CHARINDEX('(',f1)-1) +
 SUBSTRING(f1,len(f1)-CHARINDEX(')',reverse(f1))+2,100) as f2  from t_tmp

对应的UPDATE为下,顺便加了过滤条件避免不是此类数据也被处理了

update 表名 set 字段名 = 
SUBSTRING(字段名,1,CHARINDEX('(',字段名)-1) +
 SUBSTRING(字段名,len(字段名)-CHARINDEX(')',reverse(字段名))+2,len(字段名))
 where CHARINDEX(')',字段名)>CHARINDEX('(',字段名) and CHARINDEX('(',字段名)>0

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-28
例如,删除SaveData表DrugName列中所有括号内容
UPDATE SaveData SET DrugName = reverse(SUBSTRING(reverse(DrugName),charindex('(',reverse(DrugName)) + 1 , len(DrugName)))