在Oracle中,可以使用PIVOT和UNPIVOT操作來實現(xiàn)行轉(zhuǎn)列和列轉(zhuǎn)行。
SELECT *
FROM (
SELECT student_name, subject, score
FROM student_scores
)
PIVOT
(
MAX(score)
FOR subject IN ('Math', 'English', 'Science')
);
在上面的例子中,將學(xué)生的姓名作為行數(shù)據(jù),將科目(Math,English,Science)作為列數(shù)據(jù)。
SELECT student_name, subject, score
FROM (
SELECT *
FROM student_scores
)
UNPIVOT
(
score FOR subject IN ('Math', 'English', 'Science')
);
在上面的例子中,將科目(Math,English,Science)作為列數(shù)據(jù),將學(xué)生的姓名與其對應(yīng)的成績作為行數(shù)據(jù)。