• 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
  • 相关阅读:
    Unity学习
    C#文件操作
    Unity3D XLua热更新流程
    Unity编辑器扩展
    Unity性能优化
    Unity热更新 xLua
    Unity热更新 AssetBundle
    Quickcocos从安装到打包
    EasyTouch5插件使用 EasyTouch手势检测功能
    PHP CURL HTTPS内存泄露问题
  • 原文地址:https://www.cnblogs.com/goodspeed/p/52709.html
Copyright © 2020-2023  润新知