Oracle 行转列问题,求助大神

下面是原表和目标表,原表中一个ID多条数据,最多不超过5条... 下面是原表和目标表,原表中一个ID多条数据,最多不超过5条 展开
 我来答
badkano
2017-11-16 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885358
团长

向TA提问 私信TA
展开全部

创建表插入数据:

create table test
(id int,
field int);


insert into test values (1,101);
insert into test values (1,102);
insert into test values (1,103);
insert into test values (2,36);
insert into test values (2,37);
insert into test values (2,38);
insert into test values (2,39);
commit;

执行:

select t.id,
       max(decode(rn, 1, field, null)) field1,
       max(decode(rn, 2, field, null)) field2,
       max(decode(rn, 3, field, null)) field3,
       max(decode(rn, 4, field, null)) field4,
       max(decode(rn, 5, field, null)) field5
  from (select test.*, row_number() over(partition by id order by field) rn
          from test) t
 group by t.id;

结果:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式