oracle怎么转换为列-Oracle

admin2年前 (2024-06-05)基础运维知识417
点击下载TXT

如何将 Oracle 数据转换成列

Oracle 数据库提供了一个名为 PIVOT 的函数,它可以将行数据转换为列数据。PIVOT 函数的语法如下:

PIVOT (
    agg_expr
    FOR col_name
    IN (value1, value2, ..., valueN)
    [PARTITION BY partition_col_name1, ..., partition_col_nameN]
)
登录后复制

示例:

将以下表中的行数据转换为列数据:

ID Name Sport
1 John Basketball
2 Mary Soccer
3 Bob Basketball
4 Jane Soccer
5 Tom Baseball

使用 PIVOT 函数将其转换为列数据:

SELECT ID,
       MAX(CASE WHEN Sport = 'Basketball' THEN Name END) AS Basketball,
       MAX(CASE WHEN Sport = 'Soccer' THEN Name END) AS Soccer,
       MAX(CASE WHEN Sport = 'Baseball' THEN Name END) AS Baseball
FROM (
    SELECT ID, Name, Sport
    FROM table_name
)
PIVOT (
    Name
    FOR Sport
    IN ('Basketball', 'Soccer', 'Baseball')
)
GROUP BY ID;
登录后复制

输出:

ID Basketball Soccer Baseball
1 John NULL NULL
2 NULL Mary NULL
3 Bob NULL NULL
4 NULL Jane NULL
5 NULL NULL Tom

相关文章

oracle物化视图怎么设置-Oracle

Oracle 物化视图设置指南 什么是物化视图? 物化视图是存储在数据库中对基础表的预计算结果的只读副本。它可以提高需要频繁访问相同数据集的查询的性能。 如何设置物化视图? 步骤 1:创建基础表 创...

oracle中乱码怎么解决-Oracle

Oracle 中乱码解决方案 Oracle 中乱码问题是一个常见问题,可能会对数据库操作造成困难。以下是解决 Oracle 乱码问题的步骤: 检查数据库字符集 确保数据库的字符集与您要导入或写入的...

oracle未选定行怎么解决-Oracle

解决 Oracle 未选定行问题 当在 Oracle 数据库中执行查询时,有时可能会遇到未选定行的错误。这可能是由于多种原因造成的,包括: 1. 模糊查询 模糊查询使用通配符(例如 % 或 _)来匹...

oracle子查询怎么关闭-Oracle

Oracle 子查询性能优化:关闭子查询 Oracle 中的子查询可以提高复杂查询的效率,但如果使用不当,也会导致性能问题。关闭子查询可以显著提高性能,下面介绍关闭子查询的几种方法: 1. 使用 J...

oracle索引怎么使用-Oracle

Oracle索引:使用指南 索引概述 Oracle索引是一种数据库结构,它通过在表中创建指向特定列或列组的指针来优化查询性能。 索引的类型 Oracle支持多种类型的索引,最常见的有: B-Tr...

oracle卸载不干净怎么办-Oracle

如何处理 Oracle 卸载不干净 简介当尝试卸载 Oracle 数据库时,有时可能会遇到卸载不干净的情况,导致系统中残留文件、目录和注册表项。这可能会影响后续安装或其他操作的进行。 原因Oracl...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。