oracle怎么转换为列-Oracle

admin2年前 (2024-06-05)基础运维知识348
点击下载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 游标的使用 游标是一种数据库对象,允许您逐行访问查询结果集。它在需要循环处理数据或按顺序获取记录时非常有用。 如何使用 Oracle 游标 创建和使用 Oracle 游标涉及以下步骤:...

oracle怎么创建自增序列-Oracle

如何使用 Oracle 创建自增序列? 在 Oracle 数据库中创建自增序列非常简单,可使用以下步骤: 连接到数据库:使用 SQL*Plus 或其他工具连接到 Oracle 数据库。 创建序...

oracle日期比较怎么写-Oracle

Oracle 中比较日期的方法 在 Oracle 中比较日期有两种主要方法: 1. 直接比较 最直接的方法是使用比较运算符,例如: SELECT * FROM table_name WHERE da...

oracle怎么查看所有表-Oracle

如何查看 Oracle 中的所有表 要查看 Oracle 数据库中的所有表,可以使用以下查询: SELECT table_name FROM user_tables;登录后复制 此查询将返回您当前用...

oracle动态sql怎么创建-Oracle

如何使用Oracle创建动态SQL Oracle的动态SQL允许你根据运行时输入创建和执行SQL语句。这非常适合需要对用户输入做出响应或需要根据特定条件修改查询的应用程序。 创建动态SQL的步骤:...

oracle索引怎么建-Oracle

如何创建 Oracle 索引 索引是数据库表中一种特殊的数据结构,用于加速数据检索。它们通过创建表中某一列或多列的排序副本来实现,使数据库可以快速找到满足特定查询条件的行。 创建 Oracle 索引...

发表评论

访客

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