SQL charindex返回0

时间:2019-01-09 12:52:08

标签: 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=38

输出: 0

2 个答案:

答案 0 :(得分:2)

最后一个参数是start_location,您可能没有字符长度。

CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )  

参考:https://docs.microsoft.com/en-us/sql/t-sql/functions/charindex-transact-sql?view=sql-server-2017

答案 1 :(得分:2)

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

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

As MSDN says

CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )