oracle 字串 聚合 sum

itpremier發表於2011-04-09

select t.rank, t.Name from t_menu_item t;

10 CLARK
10 KING
10 MILLER
20 ADAMS
20 FORD
20 JONES
20 SCOTT
20 SMITH
30 ALLEN
30 BLAKE
30 JAMES
30 MARTIN
30 TURNER
30 WARD

--------------------------------
我們透過 10g 所提供的 WMSYS.WM_CONCAT 函式即可以完成 行轉列的效果

select t.rank, WMSYS.WM_CONCAT(t.Name) TIME From t_menu_item t GROUP BY t.rank;

DEPTNO ENAME
------ ----------
10 CLARK, KING, MILLER
20 ADAMS, FORD, JONES, SCOTT, SMITH
30 ALLEN, BLAKE, JAMES, MARTIN, TURNER, WARD

PS:1.WMSYS.WM_CONCAT 有一定的長度限制,4000字元,是由資料庫決定的

2.WMSYS.WM_CONCAT 只是由“,”合成,需要用其他的字元來替代是沒有辦法的,只能用replace

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/350519/viewspace-1048443/,如需轉載,請註明出處,否則將追究法律責任。

相關文章