我有一name
列在某些单元格中包含方括号的字符串。
例子:
Smith (Divorced)
Jones
Janes
Renold (Deaceased)...
等等。我需要完全删除括号中的部分。
Smith
Jones
Janes
Renold
尝试过各种CHARINDEX
,REPLACE
但要么获得了无效的长度错误,要么仅删除了一部分。
这是您基本需要的,只需对其进行修改以适合您的查询:
declare @tmp table (name varchar(100))
insert @tmp values ('smith (divorced)' ) , ('jones'), ('renold (deceased)...')
select name
, case
when charindex('(', name, 1) > 0
then rtrim(left(name, charindex('(', name, 1) - 1))
else name
end as [name]
from @tmp
如果您需要替换已有的数据,只需发出UPDATE
,如下所示:
UPDATE Persons_Table
SET Name = case
when charindex('(', Name, 1) > 0
then rtrim(left(Name, charindex('(', Name, 1) - 1))
else Name
end
WHERE charindex('(', Name, 1) > 0 -- could prove useful since you might not want to go
-- over all of the data
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句