SQL Server之纵表与横表互转

Posted joesphos

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于SQL Server之纵表与横表互转的主要内容,如果未能解决你的问题,请参考以下文章

纵表与横表互转实例(转)

纵表与横表互转实例

Mysql 纵表转换为横表

Mysql 纵表转换为横表

SQL横表纵表转换和对比

sql 横表,纵表转换