今天在專案中修改了乙個sql
select t.dmid bmid,wm_concat(m.xm) fgld from gg_user m,gg_dmnr_qx t where m.id = t.czyid group by dmid
這個函式也夠把符合條件的幾條資料的某一列 合併成一條資料中的某一列
比如上面這個sql
就是把gg_dmnr_qx 表裡的資料根據dmid 分組 把對應的user表裡的xm 拼接成一行
我所做的修改是要把xm 按照順序排列再拼接
改造後的sql為
select t.dmid bmid,wm_concat(m.xm)over (partition by dmid order by m.sxh) fgld
from gg_user m,gg_dmnr_qx t where m.id = t.czyid
改造之後的資料過多 並沒有分組
在外層套乙個max(fgld)即可
最終sql
select bmid,max(fgld)from(select t.dmid bmid,wm_concat(m.xm)over (partition by dmid order by m.sxh) fgld
from gg_user m,gg_dmnr_qx t where m.id = t.czyid )
注意:wm_concat ()函式無法在oracle12中使用
oracle wm concat函式的使用
wm concat函式的左右是列轉行 例 u id goods num 1 蘋果 2 2 梨子 5 1 西瓜 4 3 葡萄 1 3 香蕉 1 1 橘子 3 想要的結果為 u id goods sum 1 蘋果,西瓜,橘子 2 梨子 3 葡萄,香蕉 select u id,wmsys.wm conca...
oracle wm concat函式的使用
oracle wm concat column 函式使我們經常會使用到的,下面就教您如何使用oracle wm concat column 函式實現字段合併,如果您對oracle wm concat column 函式使用方面感興趣的話,不妨一看。shopping u id goods num 1 ...
Oracle wm concat函式排序的解決方法
預設情況下,使用wm concat和group by拼接欄位時,拼接的字段順序是無規則的。建立測試資料 create table tb seq number 10 remark varchar2 100 createtime date insert into tb seq,remark,create...