在oracle中,可以利用unpivot()函數(shù)實(shí)現(xiàn)列轉(zhuǎn)行,其SQL語句為“select 字段列表 from 數(shù)據(jù)集 unpivot(自定義列名/*列的值*/ for 自定義列名 in (列名列表))”。
本教程操作環(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?(列名列表))
示例:
轉(zhuǎn)換代碼代碼如下:
select?stuname,?coursename?,score?from score_copy??t unpivot (score?for?coursename?in?(英語,數(shù)學(xué),語文))
結(jié)果如下:
推薦教程:《Oracle教程》
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END
喜歡就支持一下吧
相關(guān)推薦