【发布时间】:2013-06-27 10:03:20
【问题描述】:
我有一个表,其中有一列包含一串逗号分隔值 (CSV)。
例如VALUE1、VALUE2、VALUE3
作为过滤器传入的是另一组 CSV。
例如VALUE2,VALUE3
所以在上面的例子中,查询应该返回任何过滤值在 CSV 列中的记录。
示例
declare @table table
(
rownum int,
csv nvarchar(300)
)
insert into @table values (1,'VALUE1, VALUE2, VALUE3')
insert into @table values (2,'VALUE1, VALUE2')
insert into @table values (3,'VALUE1, VALUE3')
insert into @table values (4,'VALUE3, VALUE4')
insert into @table values (5,'VALUE1, VALUE2, VALUE3')
insert into @table values (6,'VALUE3, VALUE4, VALUE2')
insert into @table values (7,'VALUE3')
declare @Filter nvarchar(50)
set @Filter = 'VALUE1,VALUE2'
select * from @table
因此,在上面的示例中,第 1、2、3、5 和 6 行应该由查询返回,因为它们都包含 VALUE1 或 VALUE2。
【问题讨论】:
-
只是为了确定,在您的描述之后,它应该返回所有行,对吗?第 4 行有 VALUE2 位于过滤器上,第 7 行也有
-
对不起,我的错,我忘记更新示例代码了。
-
好的。我发布的解决方案考虑到了这一点:)它会正常工作。
标签: sql-server tsql