上篇文章寫的是在ibatis中,需要返回乙個字串,卻返回了多行資料,結果出現了錯誤。
其實,我想做的是:
查詢表中的乙個字段,返回了多行,就把這麼多行的資料都拼成乙個字串。
例: 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"
終於,完美解決了一直困擾我的問題。。。挺簡單的乙個方法
ORACLE一列的多行資料拼成字元
例 id name 1 aa 2 bb 3 cc 要的結果是 aa,bb,cc 以前有過這種需求,我用儲存過程拼接,或者在程式中取出資料拼接,就這樣暫時解決了。可是事後一直在想是不是可以直接查出來,這樣就簡單多了,oracle中應該有這樣的方法的,可是一直沒找到,呵呵,今天終於解決了。select ...
ORACLE 一列的多行資料拼成字串
查詢表中的乙個字段,返回了多行,就把這麼多行的資料都拼成乙個字串。例 id name 1 aa 2 bb 3 cc 要的結果是 aa,bb,cc 以前有過這種需求,我用儲存過程拼接,或者在程式中取出資料拼接,就這樣暫時解決了。可是事後一直在想是不是可以直接查出來,這樣就簡單多了,oracle中應該有...
oracle 多行轉一列
以前用過又忘了。今天做資料匯出用到,記下。oracle中的wmsys.wm concat主要實現行轉列功能 說白了就是將查詢的某一列值使用逗號進行隔開拼接,成為一條資料 select d.id,d.papid as 援助系統,i.papname,d.fid as 發貨單號,d.fwdate as 發...