zoukankan      html  css  js  c++  java
  • SQLSERVER 行转列

    WITH    data
              AS ( SELECT   '语文' subject_name ,
                            90 score ,
                            '张三' student_name ,
                            '一班' class_name
                   UNION ALL
                   SELECT   '数学' subject_name ,
                            92 score ,
                            '张三' student_name ,
                            '一班' class_name
                   UNION ALL
                   SELECT   '英语' subject_name ,
                            93 score ,
                            '张三' student_name ,
                            '一班' class_name
                   UNION ALL
                   SELECT   '语文' subject_name ,
                            89 score ,
                            '张三1' student_name ,
                            '一班' class_name
                   UNION ALL
                   SELECT   '数学' subject_name ,
                            82 score ,
                            '张三1' student_name ,
                            '一班' class_name
                   UNION ALL
                   SELECT   '英语' subject_name ,
                            81 score ,
                            '张三1' student_name ,
                            '一班' class_name
                   UNION ALL
                   SELECT   '英语' subject_name ,
                            91 score ,
                            '张三1' student_name ,
                            '一班' class_name
                 )
        SELECT  *
        FROM    data PIVOT( MAX(score) FOR subject_name IN ( [语文], [数学], [英语] ) ) t;

    1,关键函数PIVOT

    2,subject_name IN ( [语文], [数学], [英语] )  把行subject_name值在 语文 数学 英语 里的数据转换成列

    3,MAX(score)  取最大分数值作为列的值,除开subject_name和score列的其他列分组组合成行数据

    查询结果:

  • 相关阅读:
    函数对象与闭包
    20.03.19作业
    关键字参数,名称空间和作用域
    作业03.18
    函数第二天
    20.03.17作业
    文件
    20.01.16作业
    前端基础
    前端知识(二)
  • 原文地址:https://www.cnblogs.com/YoungHeart/p/15153484.html
Copyright © 2011-2022 走看看