我原以为应该用 CONTAINS
,但这并没有起作用。
我想要做到这个效果:
IF CONTAINS(@stringVar, 'thisstring')
...
我必须运行一个select
语句或另一个,这取决于变量是否包含一个字符串,但我无法弄清楚如何使其工作。所有我看到的示例都是在contains
中使用列。
我原以为应该用 CONTAINS
,但这并没有起作用。
我想要做到这个效果:
IF CONTAINS(@stringVar, 'thisstring')
...
我必须运行一个select
语句或另一个,这取决于变量是否包含一个字符串,但我无法弄清楚如何使其工作。所有我看到的示例都是在contains
中使用列。
标准的 SQL 方法是使用 like:
where @stringVar like '%thisstring%'
那是在查询语句中。 你也可以在 TSQL 中这样做:
if @stringVar like '%thisstring%'
除了像其他评论者建议的那样使用LIKE
之外,你还可以使用CHARINDEX
:
declare @full varchar(100) = 'abcdefg'
declare @find varchar(100) = 'cde'
if (charindex(@find, @full) > 0)
print 'exists'
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.
CONTAINS
是用于全文索引字段的 - 如果不是,请使用LIKE