Oracle 的行列转换

原表: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函数一个比较有用的功能是可以实现行列的转换,它可以将原本出现在行中的数据转换为列,实现简单的交叉查询效果。

在这里插入图片描述

【转载注明出处,尊重原创 】

【作者水平有限,如有错误欢迎指正 .】

在这里插入图片描述

现在是2020年23:59 分
切记:不要自我感动。
原创文章 61 获赞 79 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_46163590/article/details/106064900
今日推荐