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 分
切记:不要自我感动。
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值