如果像你这个只是单纯的or的话,这两种写法应该都可以。
可是如果是有and又有or,那么就需要你先把这个条件的先后分清楚了,这样的情况,肯定需要括号括清楚每一层。
查询语句的效果
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
最好是加上
要用括号的