如何解决在 SQL Server 2016 上使用 STUFF 和 XML PATH 时如何返回空白或空记录?
我正在使用 STUFF 和 XML PATH,因为我必须使用 sql Server 2016。我一直在研究这个查询,但我无法弄清楚在使用 STUFF 和 XML PATH 时如何返回 null 或空白记录。以下是查询的片段。
SELECT
Names = STUFF((SELECT '; ' + CONCAT(t3.FirstName,' ',t3.LastName)
FROM table1 t1
LEFT JOIN table2 t2 ON t0.columnID = t2.columnID
LEFT JOIN table3 t3 ON t3.columnID = t3.columnID
FOR XML PATH('')),1,''),
问题是当没有姓/名时,此查询返回分隔符 '; ;'但如果没有姓氏/名字,我需要它返回空白值。
解决方法
只需添加一个 WHERE
:
WHERE t3.FirstName IS NOT NULL OR t3.LastName IS NOT NULL
在这种情况下,您可能还想处理其中一个为 null 并获得额外空间的情况:
SELECT '; ' + CASE
WHEN t3.FirstName IS NOT NULL AND t3.LastName IS NULL THEN t3.FirstName
WHEN t3.LastName IS NOT NULL AND t3.FirstName IS NULL THEN t3.LastName
ELSE CONCAT(t3.FirstName,' ',t3.LastName) END
另外,因为你的分隔符是两个字符长,你需要更改STUFF
参数:FOR XML PATH('')),1,2,'')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。