在oracle中,列轉行的函數是“unpivot()”函數,該函數用于對表格數據進行列轉行轉換,語法為“unpivot(自定義列名 列的值 for 自定義列名 列名 in(列名))”。
本教程操作環(huán)境:Windows10系統、Oracle 11g版、Dell G3電腦。
oracle的列轉行函數是什么
oracle的列轉行函數是unpivot()函數
示例如下:
原表
with?temp?as( select?'四川省'?nation?,'成都市'?第一,'綿陽市'?第二,'德陽市'?第三,'宜賓市'?第四??from?dual?union?all select?'湖北省'?nation?,'武漢市'?第一,'宜昌市'?第二,'襄陽市'?第三,''?第四???from?dual ) select?nation,name,title?from temp unpivot (name?for?title?in?(第一,第二,第三,第四))t
?說明:unpivot(自定義列名/*列的值*/ for 自定義列名/*列名*/ in(列名))
示例如下:
原數據如下:
而我想要得到的結果如下:
sql:
select?class_name,?student_name,?course_type,?result,?created_date ??from?class_tmp? ??unpivot(result?for?course_type?in(chinese_result,math_result));
原數據的chinese_result列和math_result列的列名,將轉換為新建列course_type的字段值,表示課種。
原數據的chinese_result列和math_result列的字段值,將轉換為新建列result的字段值,表示分數。
推薦教程:《Oracle視頻教程》
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦