1 iF OBJECT_ID('tba') IS NOT NULL DROP TABLE tba
2 iF OBJECT_ID('tbb') IS NOT NULL DROP TABLE tbb
3
4 go
5
6 CREATE TABLE tba(Code NVARCHAR(55),name NVARCHAR(55))
7 CREATE TABLE tbb(stuid NVARCHAR(55),code NVARCHAR(55),score NVARCHAR(22))
8
9
10 INSERT INTO dbo.tba VALUES (1,'数学')
11 INSERT INTO dbo.tba VALUES (2,'英语')
12 INSERT INTO dbo.tba VALUES (3,'语文')
13 INSERT INTO dbo.tba VALUES (4,'历史')
14 INSERT INTO dbo.tbb VALUES ('001',1,90)
15 INSERT INTO dbo.tbb VALUES ('001',3,80)
16 INSERT INTO dbo.tbb VALUES ('002',1,95)
17 INSERT INTO dbo.tbb VALUES ('003',2,85)
18
19
20 select * from dbo.tba
21 select * from dbo.tbb
22
23 DECLARE @tb1 TABLE (stuid VARCHAR(55),[语文] int,[英语]int,[历史]int,[数学]int)
24 INSERT INTO @tb1 ( stuid, 语文, 英语, 历史, 数学 )
25
26 select stuid,[语文],[英语],[历史],[数学] from
27 (select a.Name,b.stuid,b.score from dbo.tba a
28 INNER JOIN dbo.tbb b ON a.Code=b.code) tb PIVOT ( MAX(tb.score) FOR tb.Name IN ([语文],[英语],[历史],[数学])) ff
29
30 select * from @tb1
31
32 select * from @tb1 UNPIVOT ( [成绩] FOR [课程] IN ([语文],[英语],[历史],[数学]))a