溫馨提示×

oracle的行轉(zhuǎn)列和列轉(zhuǎn)行怎么實現(xiàn)

小億
83
2024-06-06 17:06:20
欄目: 云計算

在Oracle中,可以使用PIVOT和UNPIVOT操作來實現(xiàn)行轉(zhuǎn)列和列轉(zhuǎn)行。

  1. 行轉(zhuǎn)列(PIVOT):將表中的行數(shù)據(jù)轉(zhuǎn)換為列數(shù)據(jù),可以使用PIVOT操作來實現(xiàn)。例如,有一個表包含了學(xué)生的姓名和成績信息:
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ù)。

  1. 列轉(zhuǎn)行(UNPIVOT):將表中的列數(shù)據(jù)轉(zhuǎn)換為行數(shù)據(jù),可以使用UNPIVOT操作來實現(xiàn)。例如,有一個表包含了學(xué)生的姓名和各科目的成績信息:
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ù)。

0