一尘不染

汇总Oracle SQL语句中的行

sql

我有一个以这种方式存储的项目表:

A1 | B1
A1 | B2
A1 | B3
A2 | B1
A2 | B4
...

而且我需要使用SQL Query进行检索:

A1 | B1, B2, B3
A2 | B1, B4
...

阅读 139

收藏
2021-03-17

共1个答案

一尘不染

如果您拥有11g第2版,则可以使用Listagg

Select a, Listagg(b, ', ') Within Group ( Order By b )
From t
Group By a

它允许对您的值进行排序,并且它已经随Oracle一起提供:

A1  B1, B2, B3
A2  B1, B4

否则,您可以使用Tom Kytestragg函数,如Rows to
String中所述

Select a, stragg(b)
From t
Group By a

退货

A1  B1,B3,B2
A2  B1,B4
2021-03-17