zoukankan      html  css  js  c++  java
  • mysql行转列,单列转多行

    行转列

    使用CASE语句:
    SELECT SUM(CASE USER_NAME='A' THEN KILLS END) AS 'A',
    SUM(CASE USERNAME='B' THEN KILL END) AS 'B',
    SUM(CASE USERNAME='C' THEN KILL END) AS 'C'
    FROM A INNER JOIN B ON A.NAME=B.USERNAME;
    
    通过CASE给满足WHEN语句的数据返回SUM聚合函数要统计的数据,再将SUM进行重命名。推荐。
    一般形式
    SELECT NAME AS '姓名',
    SUM(CASE SUBJECT WHEN '数学' THEN MARK ELSE NULL END) AS '数学',
    SUM(CASE SUBJECT WHEN '英语' THEN MARK ELSE NULL END) AS '英语',
    SUM(CASE SUBJECT WHEN '语文' THEN MARK ELSE NULL END) AS '语文'
    FROM SUBJECT
    GROUP BY NAME;
    
    CASE语句中放原来表中要进行转换的字段(如学科),对其进行分类(如数学、英语、语文)。
    注意:要用聚合函数,最后要GROUP BY。

    单列转多行

  • 相关阅读:
    第八周上机作业
    第七周课后作业
    第七周上机作业
    第六周课后作业
    第六周上机
    第九周JAVA
    第八周JAVA
    第8次JAVA作业
    第七周JAVA
    第7周JAVA
  • 原文地址:https://www.cnblogs.com/lgh344902118/p/6986994.html
Copyright © 2011-2022 走看看