首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

语句,多谢

2013-03-26 
求一个语句,谢谢--建表create table tmp.t_table(idnumber(10), t_resultvarchar2(20))--数据insert into

求一个语句,谢谢


--建表
create table tmp.t_table
(id        number(10),
 t_result  varchar2(20)
);

--数据
insert into tmp.t_table values (1,'A');
insert into tmp.t_table values (1,'B');
insert into tmp.t_table values (1,'C');
insert into tmp.t_table values (1,'D');
insert into tmp.t_table values (2,'A');
insert into tmp.t_table values (3,'A');
insert into tmp.t_table values (3,'B');
insert into tmp.t_table values (3,'C');
insert into tmp.t_table values (3,'D');
insert into tmp.t_table values (3,'E');
insert into tmp.t_table values (4,'F');
insert into tmp.t_table values (4,'G');


--想要的结果
id,tot_result
1,A|B|C|D
2,A
3,A|B|C|D|E
4,F|G


目前能想到的方式是做loop,对于已经存在的id执行update,不存在的做insert
几十万行的数据做loop,效率太低,请教高手解决方法,感谢。 sql 循环
[解决办法]
select id,wm_concat(t_result,'
[解决办法]
') as tot_result
from shopping  
group by id 
[解决办法]

select distinct id,
  wm_concat(t_result) over(partition by id) t_result
from t_table  


1A,B,C,D
3A,E,B,C,D
2A
4F,G

[解决办法]
 select t.id, wmsys.wm_concat(t.t_result ) t_result  from t_table t   group by t.id  
11A,B,C,D
22A
33A,B,D,E,C
44F,G

热点排行