将多行合并为一个,在主视图中使用逗号作为分隔符的SQL。

huangapple go评论53阅读模式
英文:

Include convert multiple rows into one with comma as separator in main view Sql

问题

Tables diagram

将多行合并为一个,在主视图中使用逗号作为分隔符的SQL。

我有两个表,主表和子表。
我需要在一个逗号分隔的字符串中包含每个服务的所有用户。

SELECT        SrvID, SrvTitle, SrvStatus, '' AS SrvUsersText
FROM          ServicesData

要达到如下结果

将多行合并为一个,在主视图中使用逗号作为分隔符的SQL。

英文:

Tables diagram

将多行合并为一个,在主视图中使用逗号作为分隔符的SQL。

I had two tables main and sub table.
I need to include all users for each service in one comma delimited string

SELECT        SrvID, SrvTitle, SrvStatus, '' AS SrvUsersText
FROM          ServicesData

To be result like this

将多行合并为一个,在主视图中使用逗号作为分隔符的SQL。

答案1

得分: 0

如@Luuk评论所述,要将列表以逗号分隔的形式获取,您需要使用STRING_AGG函数,像这样:

SELECT        SrvID, SrvTitle, SrvStatus, 
STRING_AGG(concat(su.LineUserId,'-',su.LineUserName), ',') AS SrvUsersText
FROM          ServicesData
Join ServiceUsers su on <conditions>
group by SrvID, SrvTitle, SrvStatus
英文:

As @Luuk commented, for getting list as comma separated you need to use STRING_AGG function like this:

SELECT        SrvID, SrvTitle, SrvStatus, 
STRING_AGG(concat(su.LineUserId,&#39;-&#39;,su.LineUserName), &#39;,&#39;) AS SrvUsersText
FROM          ServicesData
Join ServiceUsers su on &lt;conditions&gt;
group by SrvID, SrvTitle, SrvStatus

huangapple
  • 本文由 发表于 2023年5月7日 00:20:03
  • 转载请务必保留本文链接:https://go.coder-hub.com/76189940.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定