SQL SERVER 2005+ 行列互转函数 PIVOT和UNPIVOT
PIVOT 用于将列值旋转为列名(即行转列),UNPIVOT 正好相反 MSDN: http://technet.microsoft.com/zh-cn/library/ms177410.aspx 此函数2005以上版本才有的。 PIVOT 的一般语法是: PIVOT ( 聚合函数(列) FOR 列 in (…) )AS P 完整语法: table_source PIVOT( 聚合函数( value_column ) FOR pivot_column (包含要成为列标题的值的列) IN(<column_list>) ) UNPIVOT 用于将列明转为列值(即列转行),在 SQL Server 2000 可以用 UNION 来实现 完整语法: table_source UNPIVOT( value_column FOR pivot_column IN(<column_list>) ) create table #tb(姓名 varchar(10),课程 varchar(10),分数 int) insert into #tb values('张三','语文',74) insert into #tb values('张三','数学',83) insert into #tb values('张三','物理',93) insert into #tb values('李四','语文',74)