zoukankan      html  css  js  c++  java
  • 数据库行列转换sql

    经常折腾数据库,常常遇到数据库行列转换的问题,下面就用一个小例子来演示下如何进行行列转换。

    1.创建一张表

    CREATE TABLE [android_source](
        [CREATETIME] [datetime] NULL,
        [SOURCE] [nvarchar](255) NULL,
        [COUNT] [float] NULL
    )

    2.插入测试数据

    insert android_source (CREATETIME,SOURCE,COUNT)  values ( '2013-07-13 00:00:00.000','1xingdong',3);
    insert android_source (CREATETIME,SOURCE,COUNT)  values ( '2013-07-13 00:00:00.000','eoemarket',1);
    insert android_source (CREATETIME,SOURCE,COUNT)  values ( '2013-07-13 00:00:00.000','lenovomm',2);
    insert android_source (CREATETIME,SOURCE,COUNT)  values ( '2013-07-13 00:00:00.000','mqidian',2);
    insert android_source (CREATETIME,SOURCE,COUNT)  values ( '2013-07-13 00:00:00.000','mumayi',5);
    insert android_source (CREATETIME,SOURCE,COUNT)  values ( '2013-07-13 00:00:00.000','nduoa',1);
    insert android_source (CREATETIME,SOURCE,COUNT)  values ( '2013-07-13 00:00:00.000','paojiao',4);
    insert android_source (CREATETIME,SOURCE,COUNT)  values ( '2013-07-13 00:00:00.000','qidian',5);
    insert android_source (CREATETIME,SOURCE,COUNT)  values ( '2013-07-14 00:00:00.000','1xingdong',20);
    insert android_source (CREATETIME,SOURCE,COUNT)  values ( '2013-07-14 00:00:00.000','eoemarket',7);
    insert android_source (CREATETIME,SOURCE,COUNT)  values ( '2013-07-14 00:00:00.000','lenovomm',21);
    insert android_source (CREATETIME,SOURCE,COUNT)  values ( '2013-07-14 00:00:00.000','mqidian',43);
    insert android_source (CREATETIME,SOURCE,COUNT)  values ( '2013-07-14 00:00:00.000','mumayi',17);
    insert android_source (CREATETIME,SOURCE,COUNT)  values ( '2013-07-14 00:00:00.000','nduoa',14);
    insert android_source (CREATETIME,SOURCE,COUNT)  values ( '2013-07-14 00:00:00.000','paojiao',8);
    insert android_source (CREATETIME,SOURCE,COUNT)  values ( '2013-07-14 00:00:00.000','qidian',72);
    insert android_source (CREATETIME,SOURCE,COUNT)  values ( '2013-07-15 00:00:00.000','1xingdong',30);
    insert android_source (CREATETIME,SOURCE,COUNT)  values ( '2013-07-15 00:00:00.000','eoemarket',22);
    insert android_source (CREATETIME,SOURCE,COUNT)  values ( '2013-07-15 00:00:00.000','lenovomm',32);

    3.列转行

    SELECT 
          CONVERT(varchar(10), [CREATETIME],120) as CreateTime, 
          MAX(CASE [SOURCE] WHEN 'qidian' THEN [COUNT] ELSE 0 END) AS 'qidian',
          MAX(CASE [SOURCE] WHEN 'paojiao' THEN [COUNT] ELSE 0 END) AS 'paojiao',
          MAX(CASE [SOURCE] WHEN 'nduoa' THEN [COUNT] ELSE 0 END) AS 'nduoa',
          MAX(CASE [SOURCE] WHEN 'mumayi' THEN [COUNT] ELSE 0 END) AS 'mumayi',
          MAX(CASE [SOURCE] WHEN 'mqidian' THEN [COUNT] ELSE 0 END) AS 'mqidian',
          MAX(CASE [SOURCE] WHEN 'lenovomm' THEN [COUNT] ELSE 0 END) AS 'lenovomm',
          MAX(CASE [SOURCE] WHEN 'eoemarket' THEN [COUNT] ELSE 0 END) AS 'eoemarket',
          MAX(CASE [SOURCE] WHEN 'dbank' THEN [COUNT] ELSE 0 END) AS 'dbank',
          MAX(CASE [SOURCE] WHEN '1xingdong' THEN [COUNT] ELSE 0 END) AS '1xingdong'
    FROM [MyDataBase].[dbo].android_source
    GROUP BY CONVERT(varchar(10), [CREATETIME],120)

    结果:

  • 相关阅读:
    HTML导航条的制作
    图片样式加hover特效
    用表格制作商品购买页面--(table)
    CSS-盒子模型
    一些常见css样式加选择器
    css的一些样式
    HTML基本代码
    element-ui的tab切换同步步骤条 字符串转数字 数字转字符串
    vuex相关知识笔记
    js: 数组方法(中级)
  • 原文地址:https://www.cnblogs.com/fanyong/p/3346932.html
Copyright © 2011-2022 走看看