zoukankan      html  css  js  c++  java
  • SQL 练习题目

     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;
  • 相关阅读:
    网页布局色块
    多物体运动
    elasticsearch基础命令
    mysiam,innodb
    git常用命令
    redis内存淘汰机制
    PHP运行模式
    MySQL主从延迟
    ip、uv、pv
    缓存出现的几种情况
  • 原文地址:https://www.cnblogs.com/chenyao/p/3014683.html
Copyright © 2011-2022 走看看