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