一、使用decode函数进行“行转列”:
首先我们来看看最典型的需求:学生成绩单报表制作
【1】表结构定义:
【2】测试数据如下:
【3】最终转换的结果如下:
【4】实现方式:
首先我们来看看最典型的需求:学生成绩单报表制作
【1】表结构定义:
create
table
SCORE
(
ID NUMBER ( 2 ),
STUDENT_NAME VARCHAR2 ( 10 ),
SUBJECT VARCHAR2 ( 10 ),
SCORE NUMBER ( 6 , 2 )
)
(
ID NUMBER ( 2 ),
STUDENT_NAME VARCHAR2 ( 10 ),
SUBJECT VARCHAR2 ( 10 ),
SCORE NUMBER ( 6 , 2 )
)
【2】测试数据如下:
SQL
>
select
*
from
score;
ID STUDENT_NAME SUBJECT SCORE
-- -------- --------------- ---------- ----------
1 paul Chinese 80
1 paul Math 75.05
1 paul English 90
2 bob Chinese 85.05
2 bob English 73.05
2 bob Math 99
已选择6行。
ID STUDENT_NAME SUBJECT SCORE
-- -------- --------------- ---------- ----------
1 paul Chinese 80
1 paul Math 75.05
1 paul English 90
2 bob Chinese 85.05
2 bob English 73.05
2 bob Math 99
已选择6行。
【3】最终转换的结果如下:
ID STUDENT_NAME 语法 数学 英语
---------- --------------- ---------- ---------- ----------
1 paul 80 75.05 90
2 bob 85.05 99 73.05
---------- --------------- ---------- ---------- ----------
1 paul 80 75.05 90
2 bob 85.05 99 73.05
【4】实现方式:
SQL
>
select
id,
2 student_name,
3
2 student_name,
3