原表:student
原表:course
以下使用Max、Min、sum 都可以。。
1. 固定行列转换格式及方法:
1.1、Decode方式
select sno,SNAME,
max(decode (ssex,‘男生’,sclass,95033))男生,
max(decode (ssex,‘女生’,sclass,95031))女生
from student
group by sno,SNAME order by sno desc
1.2、case 方式
select sno,SNAME,
max (case when ssex ='男生’then sclass else ‘95033’ end)男生,
max (case when ssex ='女生’then sclass else ‘95031’ end)女生
from student
group by sno,SNAME order by sno desc
2.转换二
select sno,
max(decode (cno,‘3-245’,degree, ‘86’,‘75’,‘68’)) 好班级,
max(decode (cno,‘3-105’,degree, ‘92’,‘88’,‘76’)) 差班级,
max(decode (cno,‘6-166’,degree,‘85’,‘79’,‘81’))中等
from score
group by sno
原理:
Oracle 提供了DECODE函数一个比较有用的功能是可以实现行列的转换,它可以将原本出现在行中的数据转换为列,实现简单的交叉查询效果。
【转载注明出处,尊重原创 】