在Oracle中,可以使用UNPIVOT函數將多列轉換為單列。以下是一個示例,假設有一個包含學生姓名、數學成績和英語成績的表格:
CREATE TABLE student_scores (
student_name VARCHAR2(50),
math_score NUMBER,
english_score NUMBER
);
INSERT INTO student_scores VALUES ('Alice', 90, 85);
INSERT INTO student_scores VALUES ('Bob', 80, 75);
INSERT INTO student_scores VALUES ('Cathy', 95, 90);
要使用UNPIVOT函數將數學成績和英語成績的列轉換為單列,可以按以下步驟執行:
SELECT student_name, subject, score
FROM student_scores
UNPIVOT (
score FOR subject IN (math_score, english_score)
);
執行以上查詢后,將得到如下結果:
STUDENT_NAME SUBJECT SCORE
----------- ------- -----
Alice MATH 90
Alice ENGLISH 85
Bob MATH 80
Bob ENGLISH 75
Cathy MATH 95
Cathy ENGLISH 90
通過UNPIVOT函數,數學成績和英語成績的列被轉換為兩行,每一行包含學生姓名、科目和成績。