我有一个名为BTSQMTAsk的表,它有两个任务。每个任务将有一个列CompletedID,是一个用逗号分隔的列。我需要返回不在第二个任务中的任务的completedID(请记住,两者都是逗号分隔的值)。请帮助我找到这个答案。我被困在这个
TaskID TaskName CompletedID
1 Upload Signed SOW 1,2,3,5,4,9
2 Confirm Payment 1,5
在这种情况下,我必须比较两个任务的completedID,并且返回结果必须类似于“ 2,3,4,9”
- 输出
CompletedID
2,3,4,9
此解决方案不需要您更改架构。
因此,请使用这两种解决方案中的任何一种来生成一个将从定界字符串中返回列表的函数:Delimited String中的ToList()。然后执行以下操作:
/* test data */
create table dbo.foo ( id integer, idlist varchar(100) )
insert into foo
select 1, '1,2,3,4,5'
union
select 2, '1,5'
/* end test data */
declare @arr varchar(100)
set @arr = ''
select @arr = @arr + a.arrValue + ','
from (
select count(x.arrValue) as cnt,
x.arrValue
from dbo.foo f
cross apply dbo.fnArray(f.idlist, ',') x
group by x.arrValue
having count(x.arrValue) = 1
) a
set @arr = left(@arr, len(@arr) - 1)
print @arr
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句