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--TreeSet比较器排序
    java--去重练习
    java--HashSet
    java--集合可变参数
    spring MVC入门
    java IO详解
    spring入门
    redis详解
    maven教程
  • 原文地址:https://www.cnblogs.com/lgh344902118/p/6986994.html
Copyright © 2011-2022 走看看