日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL Server:使用 PIVOT 行转列和 UNPIVOT 列转行

發布時間:2025/7/14 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL Server:使用 PIVOT 行转列和 UNPIVOT 列转行 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ylbtech-SQL Server:使用 PIVOT 行轉列和 UNPIVOT 列轉行
可以使用 PIVOT 和 UNPIVOT 關系運算符將表值表達式更改為另一個表。PIVOT 通過將表達式某一列中的唯一值轉換為輸出中的多個列來旋轉表值表達式,并在必要時對最終輸出中所需的任何其余列值執行聚合。UNPIVOT 與 PIVOT 執行相反的操作,將表值表達式的列轉換為列值。 【注】對升級到 SQL Server 2005 或更高版本的數據庫使用 PIVOT 和 UNPIVOT 時,必須將數據庫的兼容級別設置為 90 或更高。有關如何設置數據庫兼容級別的信息,請參閱 sp_dbcmptlevel (Transact-SQL)。
A,PIVOT 語法返回頂部
1、

PIVOT 提供的語法比一系列復雜的 SELECT...CASE 語句中所指定的語法更簡單和更具可讀性。有關 PIVOT 語法的完整說明,請參閱 FROM (Transact-SQL)。
以下是帶批注的 PIVOT 語法。

SELECT <非透視的列>,[第一個透視的列] AS <列名稱>,[第二個透視的列] AS <列名稱>,...[最后一個透視的列] AS <列名稱>, FROM(<生成數據的 SELECT 查詢>)AS <源查詢的別名> PIVOT (<聚合函數>(<要聚合的列>) FOR [<包含要成為列標題的值的列>]IN ( [第一個透視的列], [第二個透視的列],... [最后一個透視的列]) ) AS <透視表的別名> <可選的 ORDER BY 子句>; 2、
B,PIVOT 示例1返回頂部
0、 ?示例腳本源 1、 P1、如果我想知道每位學生的每科成績,而且每個學生的全部成績排成一行,這樣方便我查看、統計,導出數據 1-1、 --A1、傳統 case 方法 select username as '姓名' ,max(case [subject] when '語文' then score else 0 end) as '語文' ,max(case [subject] when '數學' then score else 0 end) as '數學' ,max(case [subject] when '英語' then score else 0 end) as '英語' ,max(case [subject] when '生物' then score else 0 end) as '生物' from StudentScores group by username; 1-2、 -- A2:PIVOT 方法 select username as '姓名',[語文],[數學],[英語],[生物] from StudentScores a PIVOT ( max(a.score) for a.subject in([語文],[數學],[英語],[生物]) )b; 1-3、查詢結果 1-4、 2、
C,UNPIVOT 示例1返回頂部
0、 ?示例腳本源 1、 -- P1:查詢項目每個供應商的供給數量? -- A1:UNPIVOT 方法 select b.projectName,b.supplier,b.supllyNumber from ( select projectName,overseaSupply,nativeSupply,southSupply,northSupply from ProjectDetail) a UNPIVOT ( supllyNumber for supplier in(overseaSupply,nativeSupply,southSupply,northSupply) )b; 2、
D,PIVOT 示例2返回頂部
1、建立一個銷售情況表,其中,year字段表示年份,quarter字段表示季度,amount字段表示銷售額。quarter字段分別用Q1, Q2, Q3, Q4表示一、二、三、四季度。 2、 ?示例腳本源 3、
E,返回頂部
F,返回頂部
G,相關資源返回頂部
1、官方示例 https://technet.microsoft.com/zh-cn/library/ms177410(v=sql.105).aspx#簡單 PIVOT 示例 1,
H,返回頂部

本文轉自ylbtech博客園博客,原文鏈接:http://www.cnblogs.com/ylbtech/p/8028808.html,如需轉載請自行聯系原作者 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的SQL Server:使用 PIVOT 行转列和 UNPIVOT 列转行的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。