The*_*arp 2 sql database sql-server
例如我们有一个包含三列的表
Column A | Column B | Column C
-------------------------------
P1 | 10 | A
P1 | 20 | B
P1 | 30 | C
P2 | 30 | D
P2 | 40 | E
Run Code Online (Sandbox Code Playgroud)
我如何在Microsoft SQL中编写 SELECT 查询才能得到这种结果
Column A | Column B | Column C
------------------------------------------
P1 | 10, 20, 30 | A, B, C
P2 | 30, 40 | D, E
Run Code Online (Sandbox Code Playgroud)
如果您运行的是 SQL Server 2017,向 SQL 开发人员引入的 T-SQL 增强功能包括STRING_AGG 字符串连接函数
您可以简单地使用以下 SELECT 语句将不同行中的字符串值聚合到单个列值中
select
ColumnA,
string_agg(ColumnB,',') ColumnB,
string_agg(ColumnC,',') ColumnC
from TestTable1
group by ColumnA
Run Code Online (Sandbox Code Playgroud)