sql—使用stuff从多行汇总数据并连接列

pn9klfpd  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(272)

我在网站上也发现了类似的问题,但我仍在努力解决这个问题。我有一张表格,上面有如下信息:

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并将它们填充到一个字段中。

ccrfmcuu

ccrfmcuu1#

在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

相关问题