Oracle SQL:如何合并n行并在结果中创建其他列?

泰文

表:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在oracle select sql中的GROUP BY子句中获取不在列中的其他列?

在Oracle Sql中合并多个查询的结果

Oracle sql - 基于其他列的查询

如何从Oracle的SQL中的其他表更新

如何从oracle中的选择结果创建别名?

Oracle / SQL-使用子查询/其他表的结果更新列[多个返回]

如何根據 Oracle SQL Developer 中其他列中的起始字符創建二進制列?

SQL Oracle:合并连续的行

Oracle SQL合并具有相同id的行并组合列结果

如何将其他列中的最大值放入另一列 - oracle sql

在DISTINCT SELECT中将结果合并到Oracle SQL中

根据Oracle SQL中其他多个行的值更新行

在选择 SQL Oracle 中动态创建列

Oracle SQL如何获取按列分组以及其他选定列

如何计算按列分组的列的行数,但在 Oracle 中忽略表的其他列?

Oracle SQL:将选择结果彼此合并

在oracle中如何用其他列的计算减去列中的先前值

如何根据Oracle Apex中其他列的值启用或禁用列中的按钮?

如何根據Oracle中其他列中“/”後的值創建新列?

Oracle:根据其他列中的值选择列的值

Oracle SQL 添加列与按其他字段分组的总数

通过联接表选择其他列的计数(Oracle SQL)

在一行中的一列中合并多列值Oracle SQL

合并oracle行

如何在oracle sql脚本中创建过程并在脚本中使用它?

SQL Oracle合并记录

根据对Oracle中其他表的条件查询选择行

如何根据 Oracle 中的其他列获取列的 Distinct 值

Oracle临时表的列和其他表的行中的数据