如何从sql中的csv列返回匹配精确字符串的行?

时间:2016-05-10 05:58:42

标签: csv sql-server-2012

我有column表,其中包含CSV value个。例如:2,3,4,1,13 我想从string中找到具体的CSV,并从row返回string匹配的完全搜索csv

表格

tbl_A(ID,name,Csv)

ID name   CSV
1  ABC    1,2,13,15
2  PQR    1,4,3,5

@SearchSting=13

需要输出:

ID name  CSV
1   ABC  1,2,13,15


select * from tbl_A  where csv like '%@SearchSting%' 

这将给出两行。 :(

帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

让我首先说这是一个糟糕的数据库设计,应该避免。 如果可能,您应该规范化数据库并将该Csv列更改为包含其自身行中每个值的表。 进一步阅读:Is storing a delimited list in a database column really that bad?

但是,如果无法对数据库进行规范化,则可以执行以下操作:

SELECT Id, Name, Csv
FROM tbl_A
WHERE ',' + Csv + ',' LIKE '%,' + @SearchString  + ',%'