在Oracle中,可以使用PIVOT和UNPIVOT操作来实现行转列和列转行。
SELECT *
FROM (
SELECT student_name, subject, score
FROM student_scores
)
PIVOT
(
MAX(score)
FOR subject IN ('Math', 'English', 'Science')
);
在上面的例子中,将学生的姓名作为行数据,将科目(Math,English,Science)作为列数据。
SELECT student_name, subject, score
FROM (
SELECT *
FROM student_scores
)
UNPIVOT
(
score FOR subject IN ('Math', 'English', 'Science')
);
在上面的例子中,将科目(Math,English,Science)作为列数据,将学生的姓名与其对应的成绩作为行数据。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: oracle组合索引和单个索引有什么区别