比如有表的数据如下: Student_Grade
Name Subject Grade
小明 语文 100
小明 数学 98
小明 英语 95
小陈 语文 100
小陈 数学 100
现在要一条SQL语句,将数据展示成以下形式,请问如何写
小明 语文 100 数学 98 英语 95
小陈 语文 100 数学 100 英语 0
Name Subject Grade
小明 语文 100
小明 数学 98
小明 英语 95
小陈 语文 100
小陈 数学 100
现在要一条SQL语句,将数据展示成以下形式,请问如何写
小明 语文 100 数学 98 英语 95
小陈 语文 100 数学 100 英语 0
解决方案 »
- CLOB和BLOB应用中遇到个问题
- 怎么Oracle定时导入MSSQL?
- Asp+oracle数据库中用触发器实现了一列自增长,问题是如何在Insert的同时取得增长后的编号
- 如何将oracle中sql查询语句改写成存储过程
- 第一次写ORACLE存储过程 SELECT field_name into v_fieldName, data_type into v_dataType。。
- Oracle表空间的文件管理
- 高分求解!(jsp中怎样保存图片文件到oracle数据库,求原代码)!!
- 在red hat linux9.0上安装oracle9i的问题
- 客户端与服务端的连接问题?
- ORACLE下,怎么捕捉当前正在运行的SQL语句?
- 这个控制文件怎么写???
- 高分~~~~~~~~请教这个需求怎么实现!
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 dualselect 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
这个问题确实也是个经典问题,两次面试都被考中了,但是这个问题确实也有其特殊性
就是它每门课程的成绩记录只有一条,如果同一门的成绩有多条,我试了一下,SUM(Decode(suject,'语文',Grade,0)) as 语文成绩得到是求和的值