关于将表中一个列的值以多个列的形式展示出来的问题?
比如有表的数据如下: Student_Grade
Name Subject Grade
小明 语文 100
小明 数学 98
小明 英语 95
小陈 语文 100
小陈 数学 100
现在要一条SQL语句,将数据展示成以下形式,请问如何写
小明 语文 100 数学 98 英语 95
小陈 语文 100 数学 100 英语 0
------解决方案--------------------create table Student_Grade(
Name varchar(40),
Subject varchar(40),
Grade varchar(40))
insert into Student_Grade
select '小明 ', '语文 ', '100 ' from dual--
union
select '小明 ', '数学 ', '98 ' from dual
union
select '小明 ', '英语 ', '95 ' from dual
union
select '小陈 ', '语文 ', '100 ' from dual
union
select '小陈 ', '数学 ', '100 ' from dual
select name , '语文 ',sum(decode(Subject, '语文 ',Grade,0)) as 语文成绩,
'数学 ',sum(decode(Subject, '数学 ',Grade,0)) as 数学成绩,
'英语 ',sum(decode(Subject, '英语 ',Grade,0)) as 英语成绩
from Student_Grade
group by name