• SQL Server之纵表与横表互转


    1,纵表转横表

    纵表结构 Table_A:

    转换后的结构:

    纵表转横表的SQL示例:

    SELECT  Name ,
            SUM(CASE WHEN Course = N'语文' THEN Grade
                     ELSE 0
                END) AS Chinese ,
            SUM(CASE WHEN Course = N'数学' THEN Grade
                     ELSE 0
                END) AS Mathematics ,
            SUM(CASE WHEN Course = N'英语' THEN Grade
                     ELSE 0
                END) AS English
    FROM    dbo.Table_A
    GROUP BY Name

    2,横表转纵表

    横表结构Table_B:

    转换后的表结构:

    横表转纵表的SQL示例:

    SELECT  Name ,
            'Chinese' AS Course ,
            Chinese AS Score
    FROM    dbo.Table_B
    UNION ALL
    SELECT  Name ,
            'Mathematics' AS Course ,
            Mathematics AS Score
    FROM    dbo.Table_B
    UNION ALL
    SELECT  Name ,
            'English' AS Course ,
            English AS Score
    FROM    dbo.Table_B
    ORDER BY Name ,
            Course DESC

  • 相关阅读:
    GNOME on Arch Linux
    忽然想通不喜欢搞前端的原因
    可以一时气馁,不能放弃
    Hack语言类型化简介
    标榜
    Hack其实是一门好语言
    Focus
    PHP旧系统基于命名空间重构经验
    少即是多的设计
    IDDD 实现领域驱动设计-一个简单的 CQRS 示例
  • 原文地址:https://www.cnblogs.com/joesphos/p/5880354.html
Copyright © 2020-2023  润新知