查询sql 行变列

查询语句,行变列的经典用法

教师号  星期号 是否有课
 1    2   有
 1    3   有
 2    1   有
 3    2   有`
 1    2   有

写一条sql语句让你变为这样的表

教师号 星期一 星期二 星期三
 1       2   1 
 2   1   
 3       1

各星期下的数字表示:对应的教师在星期几已经排的课数

数据库表信息如下

[img]http://dl2.iteye.com/upload/attachment/0116/7135/7c984c83-1c44-300c-ae20-59bdce6cb2f9.png[/img]

简单的SQL

select a.teacherid as 教师号,sum(a.w1) 星期一,sum(a.w2) 星期二,sum(a.w3) 星期三 from(
select teacherid,case when week=1 then 1 end w1, case when week=2 then 1 end w2,case when week=3 then 1 end w3 from course) a group by teacherid


复杂的SQL

select b.teacherid,sum(w1) as 星期一,sum(w2) 星期二,sum(w3) 星期三 from (
select a.teacherid,case when a.week=1 then a.num end as w1,case when a.week=2 then a.num end as w2, case when a.week=3 then a.num end as w3 from (select teacherid,week,count(*) as num from course group by teacherid,week) a) b group by b.teacherid
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值