zoukankan      html  css  js  c++  java
  • SQL Server 2005中的PIVOT和UNPIVOT的例子

    DECLARE @t TABLE(student varchar(50),class varchar(50),grade int)

    INSERT INTO @t
    SELECT '孙小美','数学',10 UNION ALL
    SELECT '孙小美','语文',20 UNION ALL
    SELECT '孙小美','英语',30 UNION ALL
    SELECT '阿土伯','数学',40 UNION ALL
    SELECT '阿土伯','语文',50 UNION ALL
    SELECT '阿土伯','英语',60 UNION ALL
    SELECT '小叮铛','数学',70 UNION ALL
    SELECT '小叮铛','语文',80 UNION ALL
    SELECT '小叮铛','英语',90

    /* SQL Server 2000的交叉表*/
    SELECT 
        student,
        
    MAX(数学) AS 数学,
        
    MAX(语文) AS 语文,
        
    MAX(英语) AS 英语
    FROM
        (
        
    SELECT 
            student,
            
    CASE class WHEN '数学' THEN grade END AS 数学,
            
    CASE class WHEN '语文' THEN grade END AS 语文,
            
    CASE class WHEN '英语' THEN grade END AS 英语
        
    FROM @t
        ) 
    AS a
    GROUP BY student

    /* PIVOT */
    SELECT student,数学,语文,英语 INTO #t FROM @t
    PIVOT
    (
        
    MAX(grade) FOR class IN (数学,语文,英语)
    AS p

    /* UNPION */
    SELECT student,class,grade FROM #t
    UNPIVOT
    (
        grade 
    FOR class IN (数学,语文,英语)
    ) AS u

    DROP TABLE #t
  • 相关阅读:
    hdu4578线段树维护平方和,立方和(加,乘,赋值)或者珂朵莉树
    珂朵莉树(ODT老司机树)
    Codeforces Round #524 (Div. 2)D
    HDU1402 FFT高精度乘法模板题
    中国剩余定理poj1006
    POJ
    Install and Config MySQL 8 on Ubuntu
    Protobuf Examples
    Learning Thrift
    Flask Quickstart
  • 原文地址:https://www.cnblogs.com/goodspeed/p/52709.html
Copyright © 2011-2022 走看看