欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle中pivot函數(shù)示例詳解

 更新時(shí)間:2024年05月13日 09:13:32   作者:滕秋利  
PIVOT函數(shù)是Oracle數(shù)據(jù)庫(kù)中的一個(gè)聚合函數(shù),它可以將行數(shù)據(jù)轉(zhuǎn)換為列數(shù)據(jù),這篇文章主要介紹了Oracle中pivot函數(shù)示例詳解,需要的朋友可以參考下

【基本介紹】

【格式】:pivot(聚合函數(shù) for 需要轉(zhuǎn)為列的字段名 in(需要轉(zhuǎn)為列的字段值))

【說(shuō)明】:實(shí)現(xiàn)將指定字段的字段值轉(zhuǎn)換為列的效果。

【環(huán)境】:如下圖是樣例展示所使用的oracle版本。

【準(zhǔn)備樣例數(shù)據(jù)】

樣例數(shù)據(jù)如下圖所示:

NAME-學(xué)生姓名,SUBJECT-考試科目,GRADES-考試成績(jī)。

【樣例展示1】

實(shí)行如下sql語(yǔ)句:

select * from T_Student_Grades
pivot
(
sum(grades)
for name in('張三','李四','王五')
)

返回結(jié)果如下:按指定科目統(tǒng)計(jì)所有學(xué)生的總成績(jī),并將學(xué)生姓名字段行轉(zhuǎn)列顯示(此時(shí)雖然用到了聚合函數(shù)sum,由于SUBJECT字段也一并顯示,因此sum函數(shù)并沒(méi)有起到效果,顯示依舊是每一個(gè)學(xué)生的各科具體成績(jī))。

【樣例展示2】

實(shí)行如下sql語(yǔ)句:

select * from T_Student_Grades
pivot
(
avg(grades)
for name in ('張三' as 張三,'李四' as 李四,'王五' as 王五)
)

返回結(jié)果如下:按指定科目統(tǒng)計(jì)所有學(xué)生的平均成績(jī),并將學(xué)生姓名字段行轉(zhuǎn)列,顯示別名(此時(shí)雖然用到了聚合函數(shù)avg,由于SUBJECT字段也一并顯示,因此avg函數(shù)并沒(méi)有起到效果,顯示依舊是每一個(gè)學(xué)生的各科具體成績(jī))。

【樣例展示3】

實(shí)行如下sql語(yǔ)句:

select * from (select name,grades from T_Student_Grades)
pivot
(
sum(grades)
for name in ('張三','李四','王五')
)

返回結(jié)果如下:統(tǒng)計(jì)每一個(gè)學(xué)生的所有科目總成績(jī),并將學(xué)生姓名字段行轉(zhuǎn)列(SUBJECT字段沒(méi)有顯示)。

【樣例展示4】

實(shí)行如下sql語(yǔ)句:

select * from T_Student_Grades
pivot
(
max(grades)
for name in ('張三' as 張三,'李四' as 李四,'王五' as 王五)
)
where subject='數(shù)學(xué)'

返回結(jié)果如下:按指定科目統(tǒng)計(jì)所有學(xué)生的最高成績(jī),并將學(xué)生姓名字段行轉(zhuǎn)列,并且只顯示數(shù)學(xué)這一科目的成績(jī)(此時(shí)雖然用到了聚合函數(shù)max,由于SUBJECT字段也一并顯示,因此max函數(shù)并沒(méi)有起到效果,依舊是顯示每一個(gè)學(xué)生的各科具體成績(jī))。

【樣例展示5】

實(shí)行如下sql語(yǔ)句:

select * from T_Student_Grades
pivot
(
min(grades)
for name in ('張三' as 張三,'李四' as 李四,'王五' as 王五)
)
where 張三='90'

返回結(jié)果如下:按指定科目統(tǒng)計(jì)所有學(xué)生的最低成績(jī),并將學(xué)生姓名字段行轉(zhuǎn)列,并且只顯示數(shù)學(xué)這一科目的成績(jī)(此時(shí)雖然用到了聚合函數(shù)max,由于SUBJECT字段也一并顯示,因此max函數(shù)并沒(méi)有起到效果,依舊是顯示每一個(gè)學(xué)生的各科具體成績(jī))。

【樣例展示6】

實(shí)行如下sql語(yǔ)句(in中使用子查詢):

select * from T_Student_Grades
pivot
(
count(grades)
for name in (select distinct name from T_Student_Grades)
)

報(bào)錯(cuò)提示:ORA-00936:確實(shí)表達(dá)式,如下圖所示,看來(lái)in不支持子查詢。

到此這篇關(guān)于Oracle中pivot函數(shù)詳解的文章就介紹到這了,更多相關(guān)Oracle pivot函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決ORA-12154 TNS無(wú)法解析指定的連接標(biāo)識(shí)符問(wèn)題

    解決ORA-12154 TNS無(wú)法解析指定的連接標(biāo)識(shí)符問(wèn)題

    Oracle11g server 64bit服務(wù)器端安裝在Windows Server2008 Enterprise上,安裝Oracle11g client 32bit,通過(guò)SQL Plus以sysdba身份連接數(shù)據(jù)庫(kù),并且創(chuàng)建表空間、用戶、授權(quán)成功,在連接數(shù)據(jù)庫(kù)時(shí)出現(xiàn)問(wèn)題,下面講解ORA-12154無(wú)法解析指定的連接標(biāo)識(shí)符問(wèn)題,感興趣的朋友一起看看
    2024-01-01
  • ORACLE中段的HEADER_BLOCK示例詳析

    ORACLE中段的HEADER_BLOCK示例詳析

    這篇文章主要給大家介紹了關(guān)于ORACLE中段的HEADER_BLOCK的相關(guān)資料,文中通過(guò)是示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • Oracle數(shù)據(jù)庫(kù)中字符串截取最全方法總結(jié)

    Oracle數(shù)據(jù)庫(kù)中字符串截取最全方法總結(jié)

    Oracle提供了多種截取字符串的操作方法,可以根據(jù)具體需求選擇合適的方法進(jìn)行操作,下面這篇文章主要給大家總結(jié)介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)中字符串截取的最全方法,需要的朋友可以參考下
    2024-03-03
  • 利用PL/SQL從Oracle數(shù)據(jù)庫(kù)導(dǎo)出和導(dǎo)入數(shù)據(jù)

    利用PL/SQL從Oracle數(shù)據(jù)庫(kù)導(dǎo)出和導(dǎo)入數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了利用PL/SQL從Oracle數(shù)據(jù)庫(kù)導(dǎo)出數(shù)據(jù)和導(dǎo)入數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • ORACLE查看當(dāng)前賬號(hào)的相關(guān)信息

    ORACLE查看當(dāng)前賬號(hào)的相關(guān)信息

    ORACLE 12C 后新增了一個(gè)功能,它會(huì)記錄用戶的最后一次登錄時(shí)間:SPARE6字段記錄用戶的最后一次登錄時(shí)間,本文給大家ORACLE如何查看當(dāng)前賬號(hào)的相關(guān)信息,感興趣的朋友一起看看吧
    2021-06-06
  • OL7.6上RPM方式安裝Oracle 19c的教程

    OL7.6上RPM方式安裝Oracle 19c的教程

    這篇文章主要介紹了OL7.6上RPM方式安裝Oracle 19c的教程詳解,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Oracle連接遠(yuǎn)程數(shù)據(jù)庫(kù)的四種方法

    Oracle連接遠(yuǎn)程數(shù)據(jù)庫(kù)的四種方法

    這篇文章主要為大家詳細(xì)介紹了Oracle連接遠(yuǎn)程數(shù)據(jù)庫(kù)的四種設(shè)置方法和注意事項(xiàng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 如何解決Oracle數(shù)據(jù)表入庫(kù)中文亂碼問(wèn)題

    如何解決Oracle數(shù)據(jù)表入庫(kù)中文亂碼問(wèn)題

    Oracle數(shù)據(jù)庫(kù)在處理中文數(shù)據(jù)時(shí),經(jīng)常會(huì)遇到亂碼問(wèn)題,導(dǎo)致數(shù)據(jù)無(wú)法正常顯示和處理,這是因?yàn)镺racle數(shù)據(jù)庫(kù)默認(rèn)的字符集為US7ASCII,無(wú)法識(shí)別中文字符,通過(guò)修改數(shù)據(jù)庫(kù),客戶端和應(yīng)用程序字符集,將數(shù)據(jù)轉(zhuǎn)換為正確的字符集,可以避免亂碼問(wèn)題
    2024-02-02
  • linux下oracle設(shè)置開(kāi)機(jī)自啟動(dòng)實(shí)現(xiàn)方法

    linux下oracle設(shè)置開(kāi)機(jī)自啟動(dòng)實(shí)現(xiàn)方法

    你會(huì)發(fā)現(xiàn)Oracle沒(méi)有自行啟動(dòng),這是正常的,因?yàn)樵贚inux下安裝Oracle的確不會(huì)自行啟動(dòng),必須要自行設(shè)定相關(guān)參數(shù),首先先介紹一般而言如何啟動(dòng)oracle
    2012-11-11
  • 淺析新建Oracle數(shù)據(jù)庫(kù)的三種方法

    淺析新建Oracle數(shù)據(jù)庫(kù)的三種方法

    以下是對(duì)新建Oracle數(shù)據(jù)庫(kù)的三種方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下
    2013-08-08

最新評(píng)論