2010-04-19 24 views
2

我有一個項目表這種方式存儲:Agregate行

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

,我需要檢索與SQL查詢:

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

重複:http://stackoverflow.com/questions/492563/oracle-combine-multiple-results-in -a-subquery-into-a-single-comma-separated-valu – 2010-04-19 12:42:43

回答

3

如果你有2個你11g第二版可以使用Listagg

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

它可以讓你的價值觀排序,它已經自帶了甲骨文:

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 
+1

Peter,如果OP在11gR2上,他們可以使用LISTAGG嗎? – 2010-04-19 12:41:43

+0

@carpenteri:謝謝,編輯我的答案。 – 2010-04-19 12:49:36

+0

不幸的是,我沒有11g – kilikopela 2010-04-19 14:01:50

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

使用類似這樣的問題,這

+2

對不起,但我不明白這將有助於? – 2010-04-19 12:24:37