我一直在寻找更新某个表的某些列的方法。
此更新将尝试来查找某个子字符串并将其删除,以及其后的所有其他字符。
在某个字符之后删除每个人很容易,但我找不到用子字符串做同样事情的方法。
感谢您的帮助
答案 0 :(得分:1)
考虑到:
haystack
@needle
以下是您正在寻找的表达方式:
case
when charindex(@needle, haystack) = 0 then @haystack
else substring(haystack, 1, charindex(@needle, haystack) - 1)
end
以下是两种情况的在线测试(匹配/不匹配):http://www.sqlfiddle.com/#!3/d41d8/21209
答案 1 :(得分:0)
DECLARE
@substring varchar(32) = 'anySubString'
UPDATE
myTable
SET
colomnName =
(CASE WHEN charindex(@substring, colomnName) = 0 THEN
colomnName
ELSE
substring(colomnName , 1, charindex(@substring, colomnName) - 1)
END)
END