oracle列轉(zhuǎn)行的SQL語句是什么

oracle中,可以利用unpivot()函數(shù)實(shí)現(xiàn)列轉(zhuǎn)行,其SQL語句為“select 字段列表 from 數(shù)據(jù)集 unpivot(自定義列名/*列的值*/ for 自定義列名 in (列名列表))”。

oracle列轉(zhuǎn)行的SQL語句是什么

本教程操作環(huán)境:Windows7系統(tǒng)、Oracle 11g版、Dell G3電腦。

在實(shí)際業(yè)務(wù)開發(fā)環(huán)境中,我們經(jīng)常會遇到要對查詢的數(shù)據(jù)集進(jìn)行列轉(zhuǎn)行的需求。那么Oracle是如何實(shí)現(xiàn)的呢?

Oracle列轉(zhuǎn)行

Oracle列轉(zhuǎn)行就是把一行當(dāng)中的列的字段按照行的唯一值轉(zhuǎn)換成多行數(shù)據(jù)。?

要如何實(shí)現(xiàn)列轉(zhuǎn)行呢?可以利用Oracle自帶的列轉(zhuǎn)行函數(shù)unpivot也可以完美解決該問題

具體語法結(jié)構(gòu)如下:

select?字段列表?from?數(shù)據(jù)集 unpivot(自定義列名/*列的值*/?for?自定義列名?in?(列名列表))

示例:

oracle列轉(zhuǎn)行的SQL語句是什么

oracle列轉(zhuǎn)行的SQL語句是什么

轉(zhuǎn)換代碼代碼如下:

select?stuname,?coursename?,score?from score_copy??t unpivot (score?for?coursename?in?(英語,數(shù)學(xué),語文))

結(jié)果如下:

oracle列轉(zhuǎn)行的SQL語句是什么

推薦教程:《Oracle教程

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊7 分享