将多行数据合并为一行

时间:2014-01-12 09:51:15

标签: sql oracle merge rows

我是oracle查询的新手。

我正在创建一个从oracle数据库获取数据的excel文件。

请帮助我完成这项任务。

例如;我有2张桌子。第一个表包含作为卷号和名称的列。(卷号是唯一的)

第二个表包含作为卷号,主题和标记的列。(即,对于每个主题,每个卷号将有一行)

我需要将结果组合为包含列卷号,名称,主题1标记,主题2标记,主题3标记的Excel文件。

我怎样才能实现它?请指导我如何查询

1 个答案:

答案 0 :(得分:0)

  select a.rollnum num,a.name name,
  max(case when b.subj='science' then b.mark end) "ENG Marks",
  max(case when b.subj='maths' then b.mark end) "Maths Marks",
  max(case when b.subj='computer' then b.mark end) "Computer Marks" 
  from first a inner join second b 
  on a.rollnum=b.rollnum
  group by a.rollnum,a.name 
  order by a.rollnum;