【问题标题】:Oracle Compare two values in a rowOracle比较一行中的两个值
【发布时间】:2021-10-16 15:41:50
【问题描述】:

我有一张像下面这样的表格

value  id

yes    1
NO     2
ABC    3
ABC    4

我想比较 id 3 和 4 的值,如果值相同,则需要返回 id 1 的值,否则返回 id d 的值。

在这种情况下,由于 id 3 "ABC" 和 4 "ABC" 的值相同,因此它应该返回 "yes"。

那么如何比较同一行的值并相应地返回值呢?

【问题讨论】:

    标签: select compare where-clause rows oracle12c


    【解决方案1】:

    简单明了(第 1 - 6 行中的示例数据;查询从第 7 行开始):

    SQL> with test (value, id) as
      2    (select 'yes', 1 from dual union all
      3     select 'NO' , 2 from dual union all
      4     select 'ABC', 3 from dual union all
      5     select 'ABC', 4 from dual
      6    )
      7  select case when (select value from test where id = 3) =
      8                   (select value from test where id = 4)
      9              then (select value from test where id = 1)
     10              else (select value from test where id = 2)
     11         end result
     12  from dual;
    
    RESULT
    ----------
    yes
    
    SQL>
    

    【讨论】:

      猜你喜欢
      • 2020-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-09
      • 1970-01-01
      • 1970-01-01
      • 2015-08-23
      • 2017-07-10
      相关资源
      最近更新 更多