我有两个动态列表。我想验证一个列表包含其他列表的字符串。
代表:
list1 = 'test1, test2, test3, test4, test5'
list2 = 'how, where, why, test2, test1'
我想验证第二个列表,list2的每个字符串是否都在list1中?我想在SQL服务器的存储过程中使用它。
您能提供解决方案吗?
答案 0 :(得分:1)
您也可以尝试以下方法
declare @l1 varchar(max),@l2 varchar(max),@result varchar(max)
set @l1 = 'test1, test2, test3, test4, test5'
set @l2 = 'how, where, why, test2, test1'
select 'l1' as id,ltrim(t.c.value('.','varchar(max)')) as n into #t1 from
(select x= cast('<t>'+replace(@l1,',','</t><t>')+'</t>' as xml)) a cross apply x.nodes('/t') t(c)
select 'l2' as id,ltrim(t.c.value('.','varchar(max)')) as n into #t2 from
(select x= cast('<t>'+replace(@l2,',','</t><t>')+'</t>' as xml)) a cross apply x.nodes('/t') t(c)
select @result= (select n+',' from #t1 where n in(select n from #t2) for xml path(''))
drop table #t1, #t2
select @result