基本語(yǔ)法 數(shù)據(jù)源 PIVOT( 列(匹配列的數(shù)據(jù)值 轉(zhuǎn)換后為一行) FOR 列(需要放到行標(biāo)題的那一列,轉(zhuǎn)換后為固定標(biāo)題值) IN (列名稱) ) e.g 有數(shù)據(jù): UserNameSubjectScore 張三 語(yǔ)文80 張三 數(shù)學(xué)90 張三 英語(yǔ)70 張三 生物85 李四 語(yǔ)文80 李四 數(shù)學(xué)92 李四 英語(yǔ)76 李四 生物88 sql語(yǔ)句: SELECT * FROM Table PIVOT ( sum(Score) FOR subject IN ([語(yǔ)文],[數(shù)學(xué)],[英語(yǔ)],[生物]) ) AS T 結(jié)果: UserName 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 生物 李四 80 92 76 88 張三 80 90 70 85 -------------------------------------------------- 但在大多數(shù)情況下,我們的數(shù)據(jù)源很有可能是表連接的結(jié)果,只需要做個(gè)簡(jiǎn)單轉(zhuǎn)換即可 SELECT * FROM ( SELECT * FROM Table left join .... ) P PIVOT ( sum(Score) FOR subject IN ([語(yǔ)文],[數(shù)學(xué)],[英語(yǔ)],[生物]) ) AS T |
|
來(lái)自: johnny_net > 《sql server》