Oracle SQL语句中的聚合行

时间:2010-04-19 12:14:35

标签: sql oracle

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

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

我需要使用SQL查询检索:

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

2 个答案:

答案 0 :(得分:3)

如果你有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 Kyte使用stragg功能,如Rows to String中所述。

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

返回

A1  B1,B3,B2
A2  B1,B4

答案 1 :(得分:-2)

SELECT *
FROM `table1`
ORDER BY `afield` ASC

像这样使用