我在看下面的链接:STUFF函数可以返回NULL值吗?
Can I Comma Delimit Multiple Rows Into One Column?
解决方案中使用的查询正是我需要的,也是需要返回NULL值。
SELECT t.TicketID,
STUFF(ISNULL((SELECT ', ' + x.Person
FROM @Tickets x
WHERE x.TicketID = t.TicketID
GROUP BY x.Person
FOR XML PATH (''), TYPE).value('.','VARCHAR(max)'), ''), 1, 2, '') [No Preceeding Comma]
FROM @Tickets t
GROUP BY t.TicketID
如果每个[TicketID]都有一个关联的[Person],这很好用。
但是,如果Person为NULL,对于TicketID,我需要返回TicketID并将Person显示为NULL或空白。我无法干净地移除ISNULL。
从这:
[TicketID], [Person]
T0001 Alice
T0001 Bob
T0002 Catherine
T0002 Doug
T0003 Elaine
T0004 NULL
要这样:
[TicketID], [Person]
T0001 Alice, Bob
T0002 Catherine, Doug
T0003 Elaine
T0004 NULL
你需要写上您的查询的顶'PIVOT' ...希望你可以探索 – techspider
这是个问题吗?或试图讨论?查找MSDN,并有条不紊地前进。另外,没有理由不能提取,转换并使用您的数据。简化流程,它可能有助于找到优化的方法。 –