2013-03-01 17 views
2

如果我有2列DB2 SQL:將結果中具有相同標識的記錄分組?

text | id 
--------- 
aaa | 1 
bbb | 1 
eee | 1 
mmm | 2 
zzz | 2 
... 

表是否有可能通過ID寫這組查詢和輸出結果如下:

id | text 
------------------ 
1 | aaa, bbb, eee 
2 | mmm, zzz 
... 

謝謝!如果你希望他們按字母順序排列

select id, listagg(text, ', ') as text 
from t 
group by id 

回答

2

試試這個,

SELECT ID, 
     SUBSTR(xmlserialize(xmlagg(xmltext(CONCAT(', ',text))) as VARCHAR(1024)), 3) 
FROM tableName 
GROUP BY ID; 
+0

有點神祕,但它適用於我:) – user1613270 2013-03-04 07:45:38

+0

很高興聽到':D' – 2013-03-04 08:14:43

2

使用listagg功能DB2

select id, listagg(text, ', ') within group (order by text) as text 
from t 
group by id 
+0

我需要一些specia l授權以執行listagg?我正在使用DB2 9.7,但在嘗試使用「listagg」時出現錯誤-440? – user1613270 2013-03-04 07:08:21

+0

@ user1613270。 。 。 List 9.7g在DB2 9.7中得到完全支持。 。 。 http://pic.dhe.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.sql.ref.doc%2Fdoc%2Fr0058709.html。 – 2013-03-04 14:07:34

相關問題