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
sql pivot(行转列) 和unpivot(列转行)的用法
原文:https://www.cnblogs.com/sayshap/p/9588939.html