zoukankan      html  css  js  c++  java
  • 行转列:SQL SERVER PIVOT与用法解释

    1创建一张临时表

    CREATE TABLE #week_income(
    week NVARCHAR(20) ,
    income INT
    )

    2向临时表中插入数据

    INSERT INTO #week_income
    SELECT '星期一',1000
    UNION ALL
    SELECT '星期二',2000
    UNION ALL
    SELECT '星期三',3000
    UNION ALL
    SELECT '星期四',4000
    UNION ALL
    SELECT '星期五',5000
    UNION ALL
    SELECT '星期六',6000
    UNION ALL
    SELECT '星期日',7000

    3一般的查询是这样的 SELECT * FROM #week_income

    但是这样显示的效果是不好的,如果换个sql查询,例如 使用了PIVOT语法,对行列进行转换

    SELECT [星期一],[星期二],[星期三],[星期四],[星期五],[星期六],[星期日]
    FROM #week_income
    PIVOT (
    SUM(income)FOR week IN ([星期一],[星期二],[星期三],[星期四],[星期五],[星期六],[星期日])
    )a

    得到的结果是这样的

    4 然后再把转换后的表格再次的转为原来的形式 ,先准备一个临时表 #cc 

    SELECT * INTO #cc
    FROM #week_income
    PIVOT
    (
    SUM(income)FOR week IN (星期一,星期二,星期三,星期四)
    )a

    临时表的内容格式如下 

    然后通过unpivot sql语法转换 

    SELECT * FROM #cc
    UNPIVOT (income FOR week IN (星期一,星期二,星期三,星期四))b

  • 相关阅读:
    素材收集
    网站返回503
    uva 1048 最短路的建图 (巧,精品)
    hdu5188 01 背包
    hdu 5187 快速幂 + 快速乘 值得学习
    差分约束
    uva11090 Bellman-Ford 运用
    hdu 5185 动态规划 分析降低复杂度
    hdu5184 数论证明
    HDU5183 hash 表
  • 原文地址:https://www.cnblogs.com/yachao1120/p/8519548.html
Copyright © 2011-2022 走看看