1、固定列数的行列转换
如
student subject grade
--------- ---------- --------
student1 语文 80
student1 数学 70
student1 英语 60
student2 语文 90
student2 数学 80
student2 英语 100
……
转换为
语文 数学 英语
student1 80 70 60
student2 90 80 100
……
语句如下:
select student,
sum(decode(subject,'语文',
grade,null)) "语文",
sum(decode(subject,'数学',
grade,null)) "数学",
sum(decode(subject,'英语',
grade,null)) "英语"
from
table
group
by student;
如
student subject grade
--------- ---------- --------
student1 语文 80
student1 数学 70
student1 英语 60
student2 语文 90
student2 数学 80
student2 英语 100
……
转换为
语文 数学 英语
student1 80 70 60
student2 90 80 100
……
语句如下:
select student,
sum(decode(subject,'语文',
grade,null)) "语文",
sum(decode(subject,'数学',
grade,null)) "数学",
sum(decode(subject,'英语',
grade,null)) "英语"
from
table
group
by student;
本文介绍了一种使用SQL进行固定列数的行列转换的方法,通过具体示例展示了如何将学生的各科成绩从纵向排列转为横向展示,便于数据分析。文中详细解释了使用decode函数和sum函数完成转换的具体语法。
586

被折叠的 条评论
为什么被折叠?



