我有一个参数被传递给一个usp,它是varchar(max)。此参数如下所示:
'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等值,这仍然返回一个true。如果param包含0,我只想将其标记为true。因此,最后一个示例将返回false,其他示例将返回true。
发布于 2014-01-06 15:40:26
搜索以逗号包围的字符串,并用逗号将初始字符串包装为匹配(在字符串末尾覆盖0 ):
CASE WHEN CHARINDEX(',0,',',' + @DispIDs + ',') > 0 THEN convert(bit,1) ELSE convert(bit,0) ENDhttps://stackoverflow.com/questions/20953470
复制相似问题