在 SQL 上将具有相同 ID 的多行描述合并为一行
Merge Multiple Row Description With Same ID in One Row on SQL
相信我,这是经典的,但我不知道如何解决这个问题:
这是我的数据源
ID Color Description
-----------------------
10 White MR
10 White DREAM
10 White TURTLENIP
我的输出数据应该是这样的:
ID Color Description
------------------------
10 White MR, DREAM, TURTLENIP
我使用 COALESCE,但它似乎不适用于此报告。
P.S 这是我的案例中的一个简单问题,我在一份报告中查询了很多内部联接以合并另一个 table。但是我不知道如何将多行Desc合并为一行。
您需要字符串聚合。如果你是 运行 SQL Server 2017 或更高版本,你可以使用 string_agg()
:
select id, string_agg(descr, ', ') all_descr
from mytable
group by id
请注意,desc
是语言关键字(如 order by ... desc
),因此不是列名的好选择。我在查询中将其重命名为 descr
。
相信我,这是经典的,但我不知道如何解决这个问题:
这是我的数据源
ID Color Description ----------------------- 10 White MR 10 White DREAM 10 White TURTLENIP
我的输出数据应该是这样的:
ID Color Description ------------------------ 10 White MR, DREAM, TURTLENIP
我使用 COALESCE,但它似乎不适用于此报告。
P.S 这是我的案例中的一个简单问题,我在一份报告中查询了很多内部联接以合并另一个 table。但是我不知道如何将多行Desc合并为一行。
您需要字符串聚合。如果你是 运行 SQL Server 2017 或更高版本,你可以使用 string_agg()
:
select id, string_agg(descr, ', ') all_descr
from mytable
group by id
请注意,desc
是语言关键字(如 order by ... desc
),因此不是列名的好选择。我在查询中将其重命名为 descr
。