如何在表列中查找具有comm分隔值的字符串

时间:2017-02-10 05:15:32

标签: sql sql-server

Id  vDivisionNo
1    1,9
2    9
3    1
4    9,1

我使用了char索引但没有找到值

select * from DivisionMst where CHARINDEX(',' + vLocationNo + ',', ','+ '9,14' + ',') > 0  

试试这个

select * from DivisionMst where CHARINDEX(',' + '9,14' + ',', ','+ vLocationNo + ',') > 0

但不工作请帮助我。

2 个答案:

答案 0 :(得分:0)

使用以下查询来查找答案

SELECT        *
FROM          DivisionMst
WHERE        (vDivisionNo LIKE '%,%')

答案 1 :(得分:0)

如果可能,您应该规范化您的数据库 阅读Is storing a delimited list in a database column really that bad?,你会看到很多理由为什么这个问题的答案是绝对是的!

但是,如果您无法更改数据库结构,则可以使用LIKE:

SELECT * 
FROM DivisionMst 
WHERE ',' + vLocationNo + ',' LIKE '%,'+ '9,14' + ',%'

顺便说一句,您的示例数据不包含列名vLocationNo,也不包含值'9,14'