【问题标题】:How to convert vertical data to horizontal data in Oracle SQL [duplicate]如何在Oracle SQL中将垂直数据转换为水平数据[重复]
【发布时间】:2021-11-27 10:34:36
【问题描述】:

我有点不明白如何将垂直数据转换为水平形式

以下是我在表格中的数据

create table data (
names varchar2 (255)
);

以下是我尝试过的查询

select * from(
select names from data)
pivot (for names in('vamshi' as name1,'vikas' as name2, 'vinod' as name3)

预期输出

Vamshi|Vikas|Vinod

【问题讨论】:

    标签: sql oracle pivot decode


    【解决方案1】:

    只需聚合它们(样本数据在第 1 - 5 行;查询从第 6 行开始):

    SQL> with test (names) as
      2    (select 'vamshi' from dual union all
      3     select 'vikas'  from dual union all
      4     select 'vinod'  from dual
      5    )
      6  select listagg(names, '|') within group (order by names) result
      7  from test;
    
    RESULT
    --------------------------------------------------------------------------------
    vamshi|vikas|vinod
    
    SQL>
    

    Oracle SQL中如何将垂直数据转换为水平数据

    (不过,最初我认为最简单的方法是将纸张旋转 90 度......)

    【讨论】:

    • 似乎值是硬编码的,任何其他方法都是动态的
    • 没有什么是硬编码。阅读正在说的内容。如果您提供了 CREATE TABLE 和 INSERT INTO 示例数据,我就不必使用 CTE。您需要的查询从第 6 行开始。
    猜你喜欢
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多