使用 Stuff 从多行汇总数据并连接列
Using Stuff to roll up data from multiple rows AND concatenate columns
我在网站上发现了类似的问题,但我仍在为此苦苦挣扎。我有一个 table,其中包含如下信息:
AcctNo ChargeOrder ChargeCode
ABC 1 Charge1
ABC 2 Charge2
ABC 3 Charge3
我正在尝试使用 XML Path/STUFF 函数来 return 数据,如下所示:
AcctNo Order/Code
ABC 1:Charge1 - 2:Charge2 - 3:Charge3
但我似乎无法弄清楚如何连接我的 chargeorder 和 chargecode 并将它们填充到一个字段中。
在SQL服务器中,您可以使用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
我在网站上发现了类似的问题,但我仍在为此苦苦挣扎。我有一个 table,其中包含如下信息:
AcctNo ChargeOrder ChargeCode
ABC 1 Charge1
ABC 2 Charge2
ABC 3 Charge3
我正在尝试使用 XML Path/STUFF 函数来 return 数据,如下所示:
AcctNo Order/Code
ABC 1:Charge1 - 2:Charge2 - 3:Charge3
但我似乎无法弄清楚如何连接我的 chargeorder 和 chargecode 并将它们填充到一个字段中。
在SQL服务器中,您可以使用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