Oracle wm concat()函式 及排序

2021-08-21 18:08:48 字數 707 閱讀 7417

今天在專案中修改了乙個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...