使用Stuff汇总多行数据并连接列

时间:2020-06-24 21:32:28

标签: sql string-aggregation

我在网站上发现了类似的问题,但我仍在为此而苦苦挣扎。我有一张桌子,上面有如下信息:

AcctNo   ChargeOrder    ChargeCode
 ABC         1           Charge1
 ABC         2           Charge2
 ABC         3           Charge3

我正在尝试使用XML Path / STUFF函数返回数据,如下所示:

AcctNo  Order/Code
ABC     1:Charge1 - 2:Charge2 - 3:Charge3

但是我似乎无法弄清楚如何将我的Chargeorder和Chargecode串联起来并将它们装进一个字段中。

1 个答案:

答案 0 :(得分:0)

在SQL Server中,您可以使用string_agg()-在最新版本中:

select acctno,
       string_agg(concat(ChargeOrder, ':', ChargeCode), ' - ')
from t
group by acctno;

在旧版本中,其措辞为:

select a.acctno,
       stuff( (select concat(' - ', ChargeOrder, ':', ChargeCode)
               from t t2
               where t2.acctno = a.acctno
               for xml path ('')
              ), 1, 3, ''
            )
from (select distinct acctno from t) a
相关问题