使用case when进行行转列

我们在应用中通常会遇到需要行转列的情况。
 
比如一个成绩表。表通常会这样设计:
学生号 科目 成绩
 01      语文  80
 01      英语  90
 02      语文  60
........................
 
然后可能客户需要的是这样的信息呈现:
学生号    语文   英语   数学  ....
  01        80     90    
  02        60 
.......................................
 
这种情况我们就会需要行转列。
使用case when来依条件分列是最简单的一种方法。
 
然后当这种条件分支不清晰,转换后列数不固定的情况下呢?对照上面的例子来说就是,假设我并不知道学生学了哪些科目的时候应该怎么做?
我们继续用case when,但是由于列的不固定,需要先根据条件分支产生的可能性来拼接一下语句再动态执行。直接上码看效果可能更清晰一点:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值