關(guān)于SQL中PIVOT函數(shù)的使用方法詳解
前言
這篇文章給大家分享的是“pivot函數(shù)是什么,具體用法是怎樣的”,希望這篇文章對(duì)你一定的參考價(jià)值和幫助
提示:以下是本篇文章正文內(nèi)容,下面案例僅供參考
一、關(guān)于PIVOT函數(shù)
1.什么是PIVOT函數(shù)
在SQL中PIVOT函數(shù)又被稱為行轉(zhuǎn)列函數(shù),該函數(shù)的作用就是將行轉(zhuǎn)為列,使數(shù)據(jù)看起來(lái)更加直觀明了
2.它能實(shí)現(xiàn)什么樣的效果
PIVOT 通過(guò)將表達(dá)式某一列中的唯一值轉(zhuǎn)換為輸出中的多個(gè)列來(lái)旋轉(zhuǎn)表值表達(dá)式,并在必要時(shí)對(duì)最終輸出中所需的任何其余列值執(zhí)行聚合
二、使用方法
SELECT <非透視的列>, [第一個(gè)透視的列], [第二個(gè)透視的列], ... [最后一個(gè)透視的列] FROM 表名 PIVOT ( <聚合函數(shù)>(<要聚合的列>) FOR [<包含要成為列標(biāo)題的值的列>] IN ( [第一個(gè)透視的列], [第二個(gè)透視的列], ... [最后一個(gè)透視的列]) ) AS <透視表的別名> <可選的 ORDER BY 子句>; pivot (聚合函數(shù)(要聚合的列) for <要旋轉(zhuǎn)為行的列> in (目標(biāo)列)) as 目標(biāo)表名
三、使用前后的效果
代碼:
if exists(select * from sys.databases where name='Student') drop database Student go create database Student go use Student create table students( ID int not null, Name varchar(50) not null, Subject varchar(50) not null, Grade int not null ) insert into students values(1,'張三','語(yǔ)文',76) insert into students values(1,'張三','數(shù)學(xué)',85) insert into students values(1,'張三','英語(yǔ)',74) insert into students values(2,'李四','語(yǔ)文',89) insert into students values(2,'李四','數(shù)學(xué)',78) insert into students values(2,'李四','英語(yǔ)',98) select*from students select Name as 姓名,[語(yǔ)文],[數(shù)學(xué)],[英語(yǔ)] from students PIVOT(sum(Grade)for [Subject] in([語(yǔ)文],[數(shù)學(xué)],[英語(yǔ)])) as p order by ID
使用前:
使用后:
總結(jié)
關(guān)于SQL中行轉(zhuǎn)列的方法還有很多,但是PIVOT函數(shù)能幫你節(jié)省很多的時(shí)間和代碼,對(duì)此我覺(jué)得是比較好用的
到此這篇關(guān)于SQL中PIVOT函數(shù)的使用方法的文章就介紹到這了,更多相關(guān)SQL中PIVOT函數(shù)使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SQL Server使用PIVOT與unPIVOT實(shí)現(xiàn)行列轉(zhuǎn)換
- SQL Server 使用 Pivot 和 UnPivot 實(shí)現(xiàn)行列轉(zhuǎn)換的問(wèn)題小結(jié)
- sql server通過(guò)pivot對(duì)數(shù)據(jù)進(jìn)行行列轉(zhuǎn)換的方法
- 行轉(zhuǎn)列之SQL SERVER PIVOT與用法詳解
- SQL基礎(chǔ)教程之行轉(zhuǎn)列Pivot函數(shù)
- SQL知識(shí)點(diǎn)之列轉(zhuǎn)行Unpivot函數(shù)
- 深入SQL中PIVOT 行列轉(zhuǎn)換詳解
- SQL中PIVOT函數(shù)的用法小結(jié)
相關(guān)文章
關(guān)于sql注入的簡(jiǎn)要演示(入坑拋磚)
這篇文章主要介紹了關(guān)于sql注入的簡(jiǎn)要演示(入坑拋磚),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02詳解PyMySQL插入字典類(lèi)型的數(shù)據(jù)
在我們爬蟲(chóng)或者調(diào)API獲取數(shù)據(jù)后,需要將數(shù)據(jù)存入到數(shù)據(jù)庫(kù)中,如果數(shù)據(jù)是列表嵌套字典格式的話,一般做法是遍歷列表,然后用字典生成對(duì)應(yīng)的SQL語(yǔ)句再執(zhí)行插入到表中,本文將介紹一種更加簡(jiǎn)便的方法來(lái)插入字典類(lèi)型的數(shù)據(jù),需要的朋友可以參考下2022-07-07虛擬主機(jī)ACCESS轉(zhuǎn)換成MSSQL完全攻略(圖文教程)
大家都知道,ACCESS數(shù)據(jù)庫(kù)在數(shù)據(jù)量到達(dá)一定程度后,訪問(wèn)速度會(huì)明顯變慢,甚至造成崩潰。目前,大多數(shù)虛擬主機(jī)服務(wù)商提供的ASP主機(jī)空間一般都同時(shí)支持MS ACCESS和MS SQL兩種類(lèi)型的數(shù)據(jù)庫(kù)。2010-04-04數(shù)據(jù)庫(kù)語(yǔ)言分類(lèi)DDL、DCL、DML詳解
今天小編就為大家分享一篇關(guān)于數(shù)據(jù)庫(kù)語(yǔ)言分類(lèi)DDL、DCL、DML詳解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03在PostgreSQL中使用數(shù)組時(shí)值得注意的一些地方
這篇文章主要介紹了在PostgreSQL中使用數(shù)組時(shí)值得注意的一些地方,包括如何提高輸入性能,需要的朋友可以參考下2015-04-04Navicat Premium 15無(wú)限試用注冊(cè)表修改的方法詳解
這篇文章主要介紹了Navicat Premium 15無(wú)限試用注冊(cè)表修改的方法詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11詳解 MapperScannerConfigurer之sqlSessionFactory注入方式
這篇文章主要介紹了詳解 MapperScannerConfigurer之sqlSessionFactory注入方式的相關(guān)資料,需要的朋友可以參考下2017-04-04MySQL與Oracle差異比較之五存儲(chǔ)過(guò)程&Function
這篇文章主要介紹了MySQL與Oracle差異比較之五存儲(chǔ)過(guò)程&Function,需要的朋友可以參考下2017-04-04