我在一列中有数据,如下所示:
在SQL Server 2008
Aetna (AETNA)
我需要对此进行更新,以便在更新模式下第一个parens之后删除所有内容的Aetna。
答案 0 :(得分:2)
您可以使用CHARINDEX()
查找(
的位置,然后选择LEFT()
的所有内容:
SELECT RTRIM(LEFT('Aetna (AETNA)',CHARINDEX('(','Aetna (AETNA)')-1))
需要从长度中减去1以同时删除(
,RTRIM()
从右侧删除任何额外的空格。
只需用您的列名替换硬编码字符串。
更新将是:
UPDATE table
SET col = RTRIM(LEFT(col,CHARINDEX('(',col)-1))
WHERE col like '%(%'
答案 1 :(得分:0)
如果您需要为所有记录执行此操作:
update t
set col = left(col, charindex(' (', col))
where col like '% (%';