我有一个像下面检查逗号分隔的列值 - SQL服务器
Id Col
---- ------
1 a
2 b
3 a,b
4 b,c
5 b,a
6 c
7 ab
我找SQL表,其中用户选择值“A”或“B”或两者(它可以蜜蜂可以从前端获得任何数量的值,如'a','b')。
Declare @searchval varchar(max)
SET @Searchvalue = 'a'
Select id from tbl where col in (@Searchvalue) should return 1,3,5
SET @Searchvalue = 'a,b'
select id from tbl where col in (@Searchvalue) should return 1,2,3,4,5
上面的查询排除搜索数据在一起的行。
您应该规范化数据库表。戈登·林诺夫会同意我的看法。 –
这是正在运行的结构...我们需要解决这个问题 – Saravanan
@TimBiegeleisen:我也同意 - 全心全意!什么时候所有这些自称为“数据库设计者”的人最终都会停止将多个值**放入单个数据单元中,甚至违反了关系设计的**第一范式**。 –