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 

  

posted @ 2015-12-25 14:56  ICupid  阅读(375)  评论(0编辑  收藏  举报