SQL UNPIVOT和PIVOT

/*

table_source

PIVOT(

聚合函数(value_column)

FOR pivot_column

IN(<column_list>)

)

完整语法:

table_source

UNPIVOT(

value_column

FOR pivot_column

IN(<column_list>)

)

*/

DECLARE @table TABLE (姓名 VARCHAR(10),课程 VARCHAR(10),分数 INT)

insert into @table VALUES ('张三','语文',74)
insert into @table VALUES ('张三','数学',83)
insert into @table VALUES ('张三','物理',93)
insert into @table VALUES ('李四','语文',74)
insert into @table VALUES ('李四','数学',84)
insert into @table VALUES ('李四','物理',94)


SELECT * FROM @table

SELECT *  FROM @table PIVOT( MAX(分数) FOR 课程 IN (语文,数学,物理))a


DECLARE @table1 TABLE (姓名 VARCHAR(10),语文 INT,数学 INT,物理 INT)

INSERT INTO @table1 VALUES('张三',74,83,93)

INSERT INTO @table1 VALUES('李四',74,84,94)

SELECT * FROM @table1
SELECT  姓名 ,
        课程1 ,
        分数1
FROM    @table1 UNPIVOT ( 分数1 FOR 课程1 IN ( [语文], [数学], [物理] ) ) t 

  

原文地址:https://www.cnblogs.com/alphafly/p/5075951.html