我有一个查询,我需要在两个单独的列中获取查询结果,因为我正在做两个单独的查询
Select STUFF((SELECT ',' + cast(Task.ID as varchar(100))
from dbo.TaskRepeted
join dbo.Task on Task.id = TaskRepeted.Taskid
where TaskID IN (1,2,3,4,5,6,7,8,9)
FOR XML PATH('')) ,1,1,'') as Tasks
UNION ALL
Select STUFF((SELECT ',' + cast(CoreTask.ID as varchar(100))
from dbo.TaskRepeted
join dbo.CoreTask on CoreTask.id = TaskRepeted.Taskid
where TaskID IN (1,2,3,4,5,6,7,8,9)
FOR XML PATH('')) ,1,1,'') as CoreTasks
它仅显示一列为:任务
和两行:
第一行的数据为:3344,3,43,6,7,6,7,,34,3,443,434
第二行为空
但是我的数据应如下所示:
Tasks CoreTasks
3344,3,43,6,7,6,7,,34,3,443,434 0 (if null is coming, it should display me 0 else it will display the comma separated values)
答案 0 :(得分:0)
如果要两列,请不要使用union
:
Select STUFF((SELECT ',' + cast(Task.ID as varchar(100))
from dbo.TaskRepeted join
dbo.Task on Task.id = TaskRepeted.Taskid
where TaskID IN (1,2,3,4,5,6,7,8,9)
FOR XML PATH('')) ,1,1,'') as Tasks ,
STUFF((SELECT ',' + cast(CoreTask.ID as varchar(100))
from dbo.TaskRepeted join
dbo.CoreTask on CoreTask.id = TaskRepeted.Taskid
where TaskID IN (1,2,3,4,5,6,7,8,9)
FOR XML PATH('')) ,1,1,'') as CoreTasks