我有一个以这种方式存储的项目表:
A1 | B1
A1 | B2
A1 | B3
A2 | B1
A2 | B4
...
我需要使用SQL查询检索:
A1 | B1, B2, B3
A2 | B1, B4
...
答案 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
像这样使用