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;