问答中心分类: SQL使用存储过程检查SQL Server 2005中的字符串是否包含子字符串
0
匿名用户 提问 1小时 前

我有一根绳子,@mainString = 'CATCH ME IF YOU CAN'.我想检查一下ME在里面@mainString.
如何检查字符串在SQL中是否有特定的子字符串?

1 Answers
0
Daniel Quinlan 回答 1小时 前

您可以在谓词中使用通配符(在IF、WHERE或ON之后):

@mainstring LIKE '%' + @substring + '%'

或者在这种特殊情况下

' ' + @mainstring + ' ' LIKE '% ME[., ]%'

(如果要查找整个单词,请将空格放在带引号的字符串中,如果我可以成为更大单词的一部分,请将其删除)。

Damien_The_Unbeliever 回复 1小时 前

如果您正在查找单词匹配(第二个示例),则需要a)在@mainString前后添加空格(以便可以匹配第一个或最后一个单词),以及b)删除标点

James T Snell 回复 1小时 前

这对我来说比CHARINDEX()更好,因为在我的特殊情况下,由于权限有限,我无法执行CHARINDEX()。

Richard Szalay 回复 1小时 前

(只是别忘了在所有字符串常量前面加上前缀N如果您的列是nvarchar,否则会得到每行转换)

The Red Pea 回复 1小时 前

这可能是显而易见的,似乎LIKE运算符支持正则表达式,但LIKE操作员是正则表达式本身; 这项技术使用通配符作为文字当它搜索时'% ME[., ]%'这个[., ]部分是通配符组,用于检查单词“ME”后的可选句点、逗号或空格。谢谢