【问题标题】:How to convert single record row to column using in ORACLE Select statement with condition如何在 ORACLE Select 语句中使用条件将单个记录行转换为列
【发布时间】:2021-04-05 18:02:14
【问题描述】:

我需要在前面显示列名。基于列中选择语句中满足的条件的列具有我需要的列作为一条记录的值。为此,我正在尝试编写数据库查询。你能帮忙生成这个查询吗

【问题讨论】:

    标签: sql oracle oracle11g


    【解决方案1】:

    使用附加条件取消透视;第 1 - 4 行代表样本数据(您有,因此您的查询从第 5 行开始):

    SQL> with test (id, emp_name, is_maths_passed, is_science_passed, is_social_passed) as
      2    (select 123, 'Robert', 'YES', 'NO' , 'YES' from dual union all
      3     select 345, 'Devid' , 'NO' , 'YES', 'YES' from dual
      4    )
      5  select code, passed
      6  from (select * from (select * from test where id = &par_id)
      7        unpivot (passed
      8                 for code
      9                 in (is_maths_passed   as 'is_maths_passed',
     10                     is_science_passed as 'is_science_passed',
     11                     is_social_passed  as 'is_social_passed'
     12                    )
     13                )
     14       )
     15  where passed = 'YES';
    Enter value for par_id: 123
    
    CODE              PAS
    ----------------- ---
    is_maths_passed   YES
    is_social_passed  YES
    
    SQL> /
    Enter value for par_id: 345
    
    CODE              PAS
    ----------------- ---
    is_science_passed YES
    is_social_passed  YES
    
    SQL>
    

    【讨论】:

      猜你喜欢
      • 2020-06-29
      • 1970-01-01
      • 1970-01-01
      • 2022-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多