如何將oracle數據1000行合併成一行

本次爲了支持測試工作,需要將表中每1000個ID讀取成一行。

做法:1、首先按rownum,1000條分一組:ceil(rownum/1000),將組號和id 的關係插入msg_tab_cn表。

insert into msg_tab_cn as select ceil(rownum/1000) cn,id from (select id from msg_tab order by substr(id,-1));

2、按分組建索引

create index  id_ru on msg_tab_cn(cn);

3、合併每個1000行。

begin

for v_loop in 0..9999 loop

insert into msg_fin select  replace(wm_concat(id),',',';') from msg_tab_cn where cn = v_loop;

if mod(v_loop,100) =0 then

commit;

end if;

end loop;

end;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章