CharIndex完全匹配?

时间:2014-01-06 15:38:43

标签: sql sql-server sql-server-2008

我将一个参数传递给一个varchar(max)的usp。此参数类似于以下内容:

'1,20,3,40,0'
'1,5,30,0,5,9'
'0,50,40,8,9'
'1,10,2,3,4'

我需要弄清楚参数中的参数值是否为0。我打算用:

CASE WHEN CHARINDEX('0',@DispIDs) > 0 
     THEN convert(bit,1) 
     ELSE convert(bit,0) 
END

但是这仍然会返回一个像40,30等的值的真值。我只想在param包含0的情况下将其标记为true。所以最后一个示例将返回false,其他示例将返回true。

1 个答案:

答案 0 :(得分:2)

用逗号包围搜索它,并用逗号包装初始字符串以匹配(覆盖字符串末尾的0):

CASE WHEN CHARINDEX(',0,',',' + @DispIDs + ',') > 0 THEN convert(bit,1) ELSE convert(bit,0) END