oracle的wm_concat()函数的问题
selectbh,wm_concat(distinctname)aa,wm_concat(distinctid)bbfrom....leftjoin....类似于这样的语...
select bh,wm_concat(distinct name) aa,wm_concat(distinct id) bb from .... left join ....
类似于这样的语句查出来后name和id并不是对应的。
name id
aaa 1
bbb 2
ccc 5
ddd 3
出来后
aa bb
aaa,bbb,ccc,ddd 1,2,3,5
name和id并没有按照顺序对应,应该怎么写sql呢
结果应该是
aa bb
aaa,bbb,ccc,ddd 1,2,5,3
wm_concat(name) aa,wm_concat(id)这样的也会出现不匹配,主要是这种 ,id和name不为空 展开
类似于这样的语句查出来后name和id并不是对应的。
name id
aaa 1
bbb 2
ccc 5
ddd 3
出来后
aa bb
aaa,bbb,ccc,ddd 1,2,3,5
name和id并没有按照顺序对应,应该怎么写sql呢
结果应该是
aa bb
aaa,bbb,ccc,ddd 1,2,5,3
wm_concat(name) aa,wm_concat(id)这样的也会出现不匹配,主要是这种 ,id和name不为空 展开
展开全部
insert into test values('aaa','1');
insert into test values('bbb','2');
insert into test values('ccc','5');
insert into test values('ddd','3');
select wm_concat(a),wm_concat(b) from test;
WM_CONCAT(A) WM_CONCAT(B)
1 aaa,bbb,ccc,ddd 1,2,5,3
没有问题的。
问题出在你的那个 distinct
追问
我没有用distinct ,顺序一样会乱。。
追答
drop table test;
create table test(a varchar2(30),b varchar2(30),c varchar2(30));
insert into test values('aaa','1','a');
insert into test values('bbb','2','a');
insert into test values('ccc','5','a');
insert into test values('ddd','3','a');
insert into test values('aaaaa','11','b');
insert into test values('bbbbb','22','b');
insert into test values('ccccc','55','b');
insert into test values('ddddd','33','b');
select c,max(a),max(b) from (
select c,wm_concat(a) over (partition by c order by a) a,
wm_concat(b) over (partition by c order by a) b from test
) tt
group by c ;
C MAX(A) MAX(B)
a aaa,bbb,ccc,ddd 1,2,5,3
b aaaaa,bbbbb,ccccc,ddddd 11,22,55,33
威孚半导体技术
2024-08-19 广告
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |