首頁 >資料庫 >Oracle >oracle的列轉行函數是什麼

oracle的列轉行函數是什麼

WBOY
WBOY原創
2022-01-26 10:53:5515958瀏覽

在oracle中,列轉行的函數是「unpivot()」函數,該函數用於對表格資料進行列轉行轉換,語法為「unpivot(自訂列名列的值for 自訂列名列名in(列名))」。

oracle的列轉行函數是什麼

本教學操作環境:Windows10系統、Oracle 11g版、Dell G3電腦。

oracle的列轉行函數是什麼

oracle的列轉行函數是unpivot()函數

範例如下:

原始表

oracle的列轉行函數是什麼

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

oracle的列轉行函數是什麼

 說明:unpivot(自訂列名/*列的值*/ for 自訂列名/*列名*/ in(列名))

範例如下:

原始資料如下:

oracle的列轉行函數是什麼

而我想要得到的結果如下:

oracle的列轉行函數是什麼

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影片教學

以上是oracle的列轉行函數是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn