【发布时间】:2010-04-19 12:14:35
【问题描述】:
我有一个以这种方式存储的项目表:
A1 | B1
A1 | B2
A1 | B3
A2 | B1
A2 | B4
...
我需要使用 SQL 查询进行检索:
A1 | B1, B2, B3
A2 | B1, B4
...
【问题讨论】:
我有一个以这种方式存储的项目表:
A1 | B1
A1 | B2
A1 | B3
A2 | B1
A2 | B4
...
我需要使用 SQL 查询进行检索:
A1 | B1, B2, B3
A2 | B1, B4
...
【问题讨论】:
如果你有 11g Release 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
【讨论】:
SELECT *
FROM `table1`
ORDER BY `afield` ASC
这样使用
【讨论】: