微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 T-SQL 中获取不同的逗号分隔字符串

如何解决在 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 举报,一经查实,本站将立刻删除。