oracle的行转列和列转行怎么实现

avatar
作者
筋斗云
阅读量:5

在Oracle中,可以使用PIVOT和UNPIVOT操作来实现行转列和列转行。

  1. 行转列(PIVOT):将表中的行数据转换为列数据,可以使用PIVOT操作来实现。例如,有一个表包含了学生的姓名和成绩信息:
SELECT * FROM (    SELECT student_name, subject, score    FROM student_scores ) PIVOT (    MAX(score)    FOR subject IN ('Math', 'English', 'Science') ); 

在上面的例子中,将学生的姓名作为行数据,将科目(Math,English,Science)作为列数据。

  1. 列转行(UNPIVOT):将表中的列数据转换为行数据,可以使用UNPIVOT操作来实现。例如,有一个表包含了学生的姓名和各科目的成绩信息:
SELECT student_name, subject, score FROM (    SELECT *    FROM student_scores ) UNPIVOT (    score FOR subject IN ('Math', 'English', 'Science') ); 

在上面的例子中,将科目(Math,English,Science)作为列数据,将学生的姓名与其对应的成绩作为行数据。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!