我一直在寻找一种方法来更新某个表的某些列。
此更新将尝试查找某个子字符串并删除它以及它之后的所有其他字符。
在某个字符之后删除所有内容很容易,但我找不到用子字符串做同样事情的方法。
谢谢您的帮助
我一直在寻找一种方法来更新某个表的某些列。
此更新将尝试查找某个子字符串并删除它以及它之后的所有其他字符。
在某个字符之后删除所有内容很容易,但我找不到用子字符串做同样事情的方法。
谢谢您的帮助
考虑到:
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
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