1、PIVOT用法(行转列)
select * from Table_Score as a
pivot (sum(score) for a.name in ([语文],[数学],[外语],[文综],[理综])) as b
数据:
id name score
1 语文 100
2 数学 95
3 外语 100
4 文综 250
5 理综 300
结果:
id 语文 数学 外语 文综 理综
1 100 NULL NULL NULL NULL
2 NULL 95 NULL NULL NULL
3 NULL NULL 100 NULL NULL
4 NULL NULL NULL 250 NULL
5 NULL NULL NULL NULL 300
2、UNPIVOT用法(列转行)
select orders,weekend from
(select week1,week2,week3,week4,week5 from [dbo].[Table_Week]) a
unpivot(orders for weekend in (week1,week2,week3,week4,week5)) as b
数据:
week1 week2 week3 week4 week5
11 22 33 44 55
22 33 44 55 66
33 44 55 66 77
44 55 66 77 88
结果:
orders weekend
11 week1
22 week2
33 week3
44 week4
55 week5
22 week1
33 week2
44 week3
55 week4
66 week5
33 week1
44 week2
55 week3
66 week4
77 week5
44 week1
55 week2
66 week3
77 week4
88 week5