在oracle中1张表中有4个字段我要根据其中2个字段查询中一条记录
例如:idnumbername11管理员112管理员213管理员313管理员422管理员521管理员633管理员731管理员842管理员9执行完SQL完要求输出结果如下:...
例如:
id number name
1 1 管理员1
1 2 管理员2
1 3 管理员3
1 3 管理员4
2 2 管理员5
2 1 管理员6
3 3 管理员7
3 1 管理员8
4 2 管理员9
执行完SQL完要求输出结果如下:
id number name
1 1 管理员1
1 2 管理员2
1 3 管理员3,管理员4
2 1 管理员5
2 2 管理员6
2 3
3 1 管理员8
3 2
3 3 管理员7
4 1
4 2 管理员9
4 3 展开
id number name
1 1 管理员1
1 2 管理员2
1 3 管理员3
1 3 管理员4
2 2 管理员5
2 1 管理员6
3 3 管理员7
3 1 管理员8
4 2 管理员9
执行完SQL完要求输出结果如下:
id number name
1 1 管理员1
1 2 管理员2
1 3 管理员3,管理员4
2 1 管理员5
2 2 管理员6
2 3
3 1 管理员8
3 2
3 3 管理员7
4 1
4 2 管理员9
4 3 展开
展开全部
nubmer是关键字,你最好不要用number做字段名称,我改成 no 给你写了一个语句,是oracle11g下的:
select a.id, a.no, b.name
from (select *
from (select distinct id from tb), (select distinct no from tb)) a,
(select id, no, listagg(name, ',') within group(order by id, no) name
from tb
group by id, no) b
where a.id = b.id(+)
and a.no = b.no(+)
order by a.id, a.no
select a.id, a.no, b.name
from (select *
from (select distinct id from tb), (select distinct no from tb)) a,
(select id, no, listagg(name, ',') within group(order by id, no) name
from tb
group by id, no) b
where a.id = b.id(+)
and a.no = b.no(+)
order by a.id, a.no
更多追问追答
追问
within 未找到from关键字啊.
追答
你的oracle是11g的版本不?
给你写个10g的吧:
select a.id, a.no, b.name
from (select *
from (select distinct id from tb), (select distinct no from tb)) a,
(select id, no, wm_concat(name) name from tb group by id, no) b
where a.id = b.id(+)
and a.no = b.no(+)
order by a.id, a.no
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询