如何解决在 T-SQL 中获取不同的逗号分隔字符串
我被难住了。使用 sql Server 2019。
SELECT * FROM (VALUES
(1,'Alice','Alice'),(2,'Robert','Robert'),(3,'Bob'),(4,'Richard','Rich'),(5,'Rick'),(6,'Dick')
) tmp (ID,RealName,NickName)
鉴于此,我想制作一个表格,显示每个用户及其可能的昵称。我希望结果是:
姓名 | 又名 |
---|---|
爱丽丝 | NULL |
罗伯特 | 鲍勃 |
理查德 | Rich,Rick,Dick |
在 SO 上还有其他类似的问题,我研究过,但并没有完全解决从 AKA 列中省略 Name 的问题。 TIA
SQL Distinct comma delimited list
Produce DISTINCT values in STRING_AGG
解决方法
像这样:
with q as
(
SELECT * FROM (VALUES
(1,'Alice','Alice'),(2,'Robert','Robert'),(3,'Bob'),(4,'Richard','Rich'),(5,'Rick'),(6,'Dick')
) tmp (ID,RealName,NickName)
)
select RealName,string_agg(case when RealName <> NickName then NickName else null end,',') AKA
from q
group by RealName
输出
RealName AKA
-------- ---------------------
Alice NULL
Richard Rick,Rich,Dick
Robert Bob
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。