zoukankan      html  css  js  c++  java
  • 行转列与CASE.....WHEN...

    SET FOREIGN_KEY_CHECKS=0;
    
    -- ----------------------------
    -- Table structure for tabname
    -- ----------------------------
    DROP TABLE IF EXISTS `tabname`;
    CREATE TABLE `tabname` (
      `Id` int(11) NOT NULL AUTO_INCREMENT,
      `Name` varchar(20) DEFAULT NULL,
      `Date` date DEFAULT NULL,
      `Scount` int(11) DEFAULT NULL,
      PRIMARY KEY (`Id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of tabname
    -- ----------------------------
    INSERT INTO `tabname` VALUES ('1', '小说', '2013-09-01', '10000');
    INSERT INTO `tabname` VALUES ('2', '微信', '2013-09-01', '20000');
    INSERT INTO `tabname` VALUES ('3', '小说', '2013-09-02', '30000');
    INSERT INTO `tabname` VALUES ('4', '微信', '2013-09-02', '35000');
    INSERT INTO `tabname` VALUES ('5', '小说', '2013-09-03', '31000');
    INSERT INTO `tabname` VALUES ('6', '微信', '2013-09-03', '36000');
    INSERT INTO `tabname` VALUES ('7', '小说', '2013-09-04', '35000');
    INSERT INTO `tabname` VALUES ('8', '微信', '2013-09-04', '38000');
    INSERT INTO `tabname` VALUES ('9', '微信', '2013-09-01', '30000');

    查询结果:

    id   Name   Date          Scount
    1
    小说 2013-09-01 10000 2 微信 2013-09-01 20000 3 小说 2013-09-02 30000 4 微信 2013-09-02 35000 5 小说 2013-09-03 31000 6 微信 2013-09-03 36000 7 小说 2013-09-04 35000 8 微信 2013-09-04 38000 9 微信 2013-09-01 30000

    执行:

    SELECT 
    CASE NAME WHEN '小说' THEN Scount ELSE 0 END  小说,
    CASE NAME WHEN '微信' THEN Scount ELSE 0 END  微信 
    FROM TabName  
    where Date='2013-09-01'

    得到:

    小说       微信
    10000     0
    0        20000
    0        30000

    执行:

    SELECT 
    SUM(CASE NAME WHEN '小说' THEN Scount ELSE 0 END ) 小说,
    SUM(CASE NAME WHEN '微信' THEN Scount ELSE 0 END ) 微信 
    FROM TabName  
    where Date='2013-09-01'

    得到:

    小说      微信
    10000    50000

    执行:

    SELECT Date ,
    SUM(CASE NAME WHEN '小说' THEN Scount ELSE 0 END ) 小说,
    SUM(CASE NAME WHEN '微信' THEN Scount ELSE 0 END ) 微信 
    FROM TabName  
    GROUP BY Date

    得到:

    Date      小说    微信
    2013
    -09-01 10000 50000 2013-09-02 30000 35000 2013-09-03 31000 36000 2013-09-04 35000 38000
  • 相关阅读:
    Enumerable类
    富客户端
    Entity Framework
    使用C库函数写文件出错
    VC 打开目录 打开上次打开目录
    boost_1_45_0安装
    boost中bimap双向映射的初级学习
    VS2008安装失败
    最近使用文档, 最近保存文档, 最近运行记录
    IE升级为8.0后, VS2008出现Internet Explorer脚本错误对话框
  • 原文地址:https://www.cnblogs.com/soar-hu/p/6747609.html
Copyright © 2011-2022 走看看