我以为是CONTAINS
,但这不适合我。
我希望这样做:
IF CONTAINS(@stringVar, 'thisstring')
...
我必须运行一个select
或另一个,具体取决于该变量是否包含字符串,我无法弄清楚如何让它工作。我看到的所有示例都使用了包含的列。
提前致谢。
答案 0 :(得分:74)
标准的SQL方法是使用:
where @stringVar like '%thisstring%'
这是在查询语句中。您也可以在TSQL中执行此操作:
if @stringVar like '%thisstring%'
答案 1 :(得分:27)
您可以选择使用LIKE
代替CHARINDEX
(与其他评论者建议的一样有效):
declare @full varchar(100) = 'abcdefg'
declare @find varchar(100) = 'cde'
if (charindex(@find, @full) > 0)
print 'exists'
答案 2 :(得分:7)
CONTAINS
用于全文索引字段 - 如果没有,则使用LIKE
答案 3 :(得分:7)
IF CHARINDEX('TextToSearch',@TextWhereISearch, 0) > 0 => TEXT EXISTS
IF PATINDEX('TextToSearch', @TextWhereISearch) > 0 => TEXT EXISTS
Additionally we can also use LIKE but I usually don't use LIKE.