新聞中心
SQL Server數(shù)據(jù)庫中,PIVOT在幫助中這樣描述滴:可以使用 PIVOT 和UNPIVOT 關(guān)系運(yùn)算符將表值表達(dá)式更改為另一個(gè)表。PIVOT 通過將表達(dá)式某一列中的***值轉(zhuǎn)換為輸出中的多個(gè)列來旋轉(zhuǎn)表值表達(dá)式,并在必要時(shí)對最終輸出中所需的任何其余列值執(zhí)行聚合。UNPIVOT 與 PIVOT 執(zhí)行相反的操作,將表值表達(dá)式的列轉(zhuǎn)換為列值。

創(chuàng)新互聯(lián)是網(wǎng)站建設(shè)技術(shù)企業(yè),為成都企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、做網(wǎng)站,網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制適合企業(yè)的網(wǎng)站。十年品質(zhì),值得信賴!
測試用的數(shù)據(jù)及表結(jié)構(gòu):
- CREATE TABLE ShoppingCart(
- [Week] INT NOT NULL,
- [TotalPrice] DECIMAL DEFAULT(0) NOT NULL
- )
- INSERT INTO ShoppingCart([Week],[TotalPrice])
- SELECT 1,10 UNION ALL
- SELECT 2,20 UNION ALL
- SELECT 3,30 UNION ALL
- SELECT 4,40 UNION ALL
- SELECT 5,50 UNION ALL
- SELECT 6,60 UNION ALL
- SELECT 7,70
- SELECT * FROM ShoppingCart
輸出結(jié)果:
來看下PIVOT怎么把行變列:
- SELECT 'TotalPrice' AS [Week],[1],[2],[3],[4],[5],[6],[7]
- FROM ShoppingCart PIVOT(SUM(TotalPrice) FOR [Week] IN([1],[2],[3],[4],[5],[6],[7])) AS T
輸出結(jié)果:
可以看出來,轉(zhuǎn)換完成了,就這么個(gè)功能。再看一個(gè)UNPIVOT函數(shù),與上述功能相反,把列轉(zhuǎn)成行。我們直接使用WITH關(guān)鍵字把上述PIVOT查詢當(dāng)成源表,然后再使用UNPIVOT關(guān)鍵把它旋轉(zhuǎn)回原來的模樣,SQL腳本及結(jié)果如下:
- WITH P AS (
- SELECT 'TotalPrice' AS [Week],[1],[2],[3],[4],[5],[6],[7]
- FROM ShoppingCart PIVOT(SUM(TotalPrice) FOR [Week] IN([1],[2],[3],[4],[5],[6],[7]))
- AS T
- )
- SELECT
- [WeekDay] AS [Week],
- [WeekPrice] AS [TotalPrice]
- FROM P
- UNPIVOT(
- [WeekPrice] FOR [WeekDay] IN([1],[2],[3],[4],[5],[6],[7])
- )AS FOO
關(guān)于SQL Server數(shù)據(jù)庫PIVOT函數(shù)的使用的相關(guān)知識(shí)就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!
網(wǎng)頁題目:SQLServer數(shù)據(jù)庫PIVOT函數(shù)的使用詳解
轉(zhuǎn)載源于:http://fisionsoft.com.cn/article/cceojjs.html


咨詢
建站咨詢
