Sql server SQL charindex返回0

Sql server SQL charindex返回0,sql-server,charindex,Sql Server,Charindex,我对在SQL server中使用charindex操作符感到困惑。当我用逗号连接car字段时,我得到了所需的输出,但当我再次检查结果中的索引12时,我得到了0。野战车是INT,我也检查了12辆没有单引号的车 select concat(',',car,',') as car from drivers where id=38 输出:,12, select CHARINDEX(concat(',',car,','),'12') as carindex from drivers where id=3

我对在SQL server中使用charindex操作符感到困惑。当我用逗号连接car字段时,我得到了所需的输出,但当我再次检查结果中的索引12时,我得到了0。野战车是
INT
,我也检查了12辆没有单引号的车

select concat(',',car,',') as car from drivers where id=38
输出:
,12,

select CHARINDEX(concat(',',car,','),'12') as carindex from drivers where id=38

输出:
0
最后一个参数是
start\u location
,您可能没有字符长度

CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )  

参考:

最后一个参数是
start\u location
,您可能没有字符长度

CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )  

参考资料:

您应该首先放置一个表达式来查找:

select CHARINDEX('12', CONCAT(',', @car,','), 0)
:


您应该首先放置一个要查找的表达式:

select CHARINDEX('12', CONCAT(',', @car,','), 0)
:


您已经交换了这两个参数。我也经常遇到这种情况;首先使用表达式,然后使用搜索参数似乎更符合逻辑,但事实并非如此。当然,
12
在任何地方都不包含
、12、
。您已经交换了这两个参数。我也经常遇到这种情况;首先使用表达式,然后使用搜索参数似乎更符合逻辑,但事实并非如此。当然,
12
在任何地方都不包含
、12、