我有一个字符串@mainString = 'CATCH ME IF YOU CAN'。我想检查单词ME是否在@mainString中。
@mainString = 'CATCH ME IF YOU CAN'
ME
@mainString
我如何检查一个字符串是否在SQL中有特定的子字符串?
你可以在谓词中使用通配符(在IF, WHERE或ON之后):
@mainstring LIKE '%' + @substring + '%'
或者在这个特定的例子中
' ' + @mainstring + ' ' LIKE '% ME[., ]%'
(如果要查找整个单词,请在带引号的字符串中添加空格,如果ME可以是更大单词的一部分,则省略空格)。
CHARINDEX()在更大的字符串中搜索子字符串,并返回匹配的位置,如果没有找到匹配则返回0
CHARINDEX()
if CHARINDEX('ME',@mainString) > 0 begin --do something end
编辑或from daniels answer,如果你想找到一个单词(而不是单词的子组件),你的CHARINDEX调用看起来像:
CHARINDEX
CHARINDEX(' ME ',' ' + REPLACE(REPLACE(@mainString,',',' '),'.',' ') + ' ')
(为可能出现的任何其他标点符号添加更多的递归REPLACE()调用)