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