表:
id race
1 elf
1 troll
2 lizard
2 elf
2 human
3 dwarf
我正在寻找输出以下内容的请求:
id race1 race2 race3
1 elf troll
2 lizard elf human
3 dwarf
如果更简单,则可以有n个种族或给定的最大种族数
sql查询(不是pl / sql)可以吗?(如果需要特殊功能,则为oracle)
如果要通过简单的方法执行此操作,则可以使用条件聚合select
:
select id,
max(case when seqnum = 1 then race end) as race_1,
max(case when seqnum = 2 then race end) as race_2,
max(case when seqnum = 3 then race end) as race_3,
max(case when seqnum = 4 then race end) as race_4,
max(case when seqnum = 5 then race end) as race_5
from (select t.*,
row_number() over (partition by id order by id) as seqnum
from t
) t
group by id;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句