【问题标题】: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>