T SQL PIVOT 行列轉換

2022-02-14 05:22:59 字數 978 閱讀 4291

前面幾個例子:

全是sql server行列轉換或是列行轉換的相關例子。不過在sql server2005版本開始,有乙個新的函式pivot()可以很輕易實現這些功能。參考下面**:

view code

select

[rid],

[2011-01-23],

[2011-01-24],

[2011-01-25],

[2011-01-26

]from

(select

[rid],

[dt],

[hits

]from

[dbo].

[recordhits]) 

asppivot

(sum([

hits]) 

for[dt]

in([2011-01-23],

[2011-01-24],

[2011-01-25],

[2011-01-26])

) as

q;執行結果:

另一種是想把上面的結果進行列行轉換: 

view code

select[dt

],[r1

],[r2

],[r3

],[r4

]from

(select

[rid],

[dt],

[hits

]from

[dbo].

[recordhits]) 

asppivot

(sum([

hits]) 

for[

rid]in(

[r1],

[r2],

[r3],

[r4])

) as

q;執行結果:

mysql行列轉換 mysql行列轉換

1.一維轉二維 上圖為成績表中資料,現希望將資料轉換為下圖。靜態 轉化為二維表後的列名及列數是確定不變的,本例中即course只有數學 語文 英語這三門課。select s name,max if course 數學 score,0 as 數學,max if course 語文 score,0 as...

mysql行列轉換例子 mysql行列轉換示例

現把轉換方法列舉如下 1 縱表轉橫表 縱表結構 tablea name course grade 張三語文 張三數學 張三英語 李四語文 李四數學 橫表結構 tableb name 語文數學 英語張三 李四方法一 select name,sum case course when 語文 then gr...

行列轉換 普通

行列轉換 普通 if exists select from sysobjects where id object id a and sysstat 0xf 3 drop table dbo.a create table dbo.a name1 varchar 20 not null,subject ...