在数据库的数据处理中我们有时候需要对数据进行行列互换即把形如下面的数据
转换为如下的形式
下面看看我们在Sql Server 2000 和 Sql Server 2005 中的分别实现
首先创建测试环境
IF OBJECT_ID(N'PIVOTDemo') is not null
TRUNCATE TABLE PIVOTDemo
ELSE
CREATE TABLE PIVOTDemo
(
[no] INT
,[name] varchar(20)
,[course] varchar(20)
,[mark] int
)
GO
INSERT INTO PIVOTDemo
(
[no]
,[name]
,[course]
,[mark]
)
SELECT 1,'SMAN.HUANG','语文',59 UNION ALL
SELECT 1,'SMAN.HUANG','数学',86 UNION ALL
SELECT 1,'SMAN.HUANG','英语',78 UNION ALL
SELECT 2,'WEIWEI.JIANG','语文',85 UNION ALL
SELECT 2,'WEIWEI.JIANG','数学',86