1. 程式人生 > >sql pivot(行轉列) 和unpivot(列轉行)的用法

sql pivot(行轉列) 和unpivot(列轉行)的用法

sql clas 數據 sele core unp null col style

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(列轉行)的用法