ORACLE:一列的多行資料拼成字串
其實,我想做的是:
查詢表中的一個欄位,返回了多行,就把這麼多行的資料都拼成一個字串。
例: id name
1 aa
2 bb
3 cc
要的結果是"aa,bb,cc"
以前有過這種需求,我用儲存過程拼接,或者在程式中取出資料拼接,就這樣暫時解決了。
可是事後一直在想是不是可以直接查出來,這樣就簡單多了,oracle中應該有這樣的方法的,可是一直沒找到,呵呵,今天終於解決了。
select WMSYS.WM_CONCAT(a.name) from user a
這樣的話,查詢出的結果:"aa.bb.cc"
解決是解決了,不過用中間用點間隔不太好,希望用逗分號
改進一下:
select replace(WMSYS.WM_CONCAT(a.name),',',';') from user a
結果:"aa;bb;cc"
終於,完美解決了一直困擾我的問題。。。挺簡單的一個方法