Oracle純SQL實現多行並一行

2021-06-21 07:37:13 字數 1187 閱讀 3276

問題:在開發過程中需要實現以下效果

1  a

1  b  

------>  

1  a,b,c

1  c

1.oracle 10以上可以使用wmsys.wm_concat函式,相當easy

2.如果oracle是9以下,則用procedure或function實現

3.純sql實現:(oracle9及以上 由於有 sys_connect_by_path函式)

select   repair_rec_sys_id, translate (ltrim (text, '/'), '*/', '*,') researcherlist

from (select row_number () over (partition by repair_rec_sys_id order by repair_rec_sys_id,

lvl desc) rn,

repair_rec_sys_id, text

from (select  

repair_rec_sys_id, level lvl,

sys_connect_by_path (good_part,'/') text

from (select   repair_rec_sys_id, good_part as good_part,

row_number () over (partition by repair_rec_sys_id order by repair_rec_sys_id,good_part) x

from repair_repl_detail

order by repair_rec_sys_id, good_part) a

connect by repair_rec_sys_id = prior repair_rec_sys_id and x - 1 = prior x))

where rn = 1

order by repair_rec_sys_id

repair_rec_sys_id:你需要合併的參照字段

good_part:需要合併的字段

repair_repl_detail:表名

ORACLE純SQL實現多行合併一行

專案中遇到乙個需求,需要將多行合併為一行。表結構如下 name null type n sec code not null char 6 c researcher code not null varchar2 20 此表儲存了 與 研究員 的對應關係資料,一般而言,對於同一只 而言,可能有多個研究員...

純js實現多行文字溢位隱藏並顯示省略號

使用html2canvas生成時,用css控制超出行數隱藏並顯示省略號無效,可以通過js實現。text v text posteraddress style line height 24px div this overflowhidden text 2 我是顯示的文字引數 第乙個引數是元素id,第二...

oracle排序並分頁sql語句

因為oracle沒有mysql的limit的語法,因此排序和分頁不能方便的完成,但是通過三次巢狀查詢可以達到同樣的功能 selecttemp2.from select rownum num,temp1.from select fields we want from table order by fi...