您的位置:首页 > 数据库

SQL 练习题目

2013-04-11 16:08 239 查看
1.行转列

教师号  星期号 是否有课
 1    2   有
 1    3   有
 2    1   有
 3    2   有`
 1    2   有
写一条sql语句让你变为这样的表
教师号 星期一 星期二 星期三
 1       2   1 
 2   1   
 3       1
各星期下的数字表示:对应的教师在星期几已经排的课数


查了一些关于行转列的知识, 发现有pivot这个关键字的用法,可是mysql里面, 我没有成功,不知道是不是mysql不支持这个关键字。用case when解决的答案如下:

SELECT TQ_NUM,
SUM(case DAY_NUM when 1 then 1 else 0 end) Monday,
SUM(case when DAY_NUM=2 AND HAS_CLASS='有' then 1 else 0 end) Tuesday,
SUM(case when DAY_NUM=3 AND HAS_CLASS='有' then 1 else 0 end) Wednesday from classes group by TQ_NUM;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: