pivot用於將行轉為列,完整語法如下:
table_source
pivot(
聚合函式(value_column)
for pivot_column
in()
)unpivot用於將列轉為行,完整語法如下:
完整語法:
table_source
unpivot(
value_column
for pivot_column
in()
)以上語法可以理解為value_column欄位與pivot_column欄位的行列(列行)轉換,pivot_column欄位顯示的列/行為column_list
--建張表table_a
create table table_a(name varchar(8),math int,english int,chinese int)
insert into table_a values('小a',80,90,88)
insert into table_a values('小b',70,90,85)
insert into table_a values('小c',75,95,85)
insert into table_a values('小d',80,90,75)
--原始表資料
select * from table_a
name
math
english
chinese
小a80
9088
小b70
9085
小c75
9585
小d80
9075
--unpivot用於將列轉為行
select subject,name,grade from table_a
unpivot(grade for subject in ([math],[english],[chinese])) as s
subject
name
grade
math
小a80
english
小a90
chinese
小a88
math
小b70
english
小b90
chinese
小b85
math
小c75
english
小c95
chinese
小c85
math
小d80
english
小d90
chinese
小d75
--pivot函式用於將行轉為列
select * from
(select subject,name,grade from table_a
unpivot(grade for subject in ([math],[english],[chinese])) as s
) as a
pivot(sum(grade) for name in ([小a],[小b],[小c],[小d])) as b
subject
小a小b
小c小d
chinese
8885
8575
english
9090
9590
math
8070
7580
PIVOT函式與UNPIVOT函式的運用
pivot用於將行轉為列,完整語法如下 table source pivot 聚合函式 value column for pivot column in unpivot用於將列轉為行,完整語法如下 完整語法 table source unpivot value column for pivot co...
unpivot與pivot的聯合使用
1 序號 張三 姓名 85 語文 85 數學 85 英語 85 歷史 85 地理 85 生物 85 化學 into tunion all select 2 序號 李四 姓名 85 語文 85 數學 85 英語 85 歷史 85 地理 85 生物 85 化學 union all select 3 序號...
PIVOT 和 UNPIVOT例項使用
表的內容 1 select subject 張三 李四 from 2 select subject name,val from pivot 3 as p1 4 pivot max val for name in 張三 李四 as p2 5 order by p2.subject 執行結果 表內容 執...