oracle 选择列表中的布尔表达式

6tdlim6h  于 2023-08-04  发布在  Oracle
关注(0)|答案(1)|浏览(120)

在Oracle中,是否可以在选择列表中返回布尔表达式?例如,我希望做这样的事情:

with tbl (id, number_as_str) as (
  select 1, '3'  from dual
  union all select 2,'2' from dual
)
select id, number_as_str, id=number_as_str from tbl;

字符串
如何在select_list中执行与expr = expr等效的操作?

o8x7eapl

o8x7eapl1#

Oracle SQL没有BOOLEAN数据类型(PL/SQL有,但SQL直到版本23 c才有)。
如果要计算表达式,请使用CASE表达式计算表达式并将其Map为标量值,例如True/FalseY/N1/0

with tbl (id, number_as_str) as (
  select 1, '3'  from dual
  union all select 2,'2' from dual
)
select id,
       number_as_str,
       CASE WHEN id=number_as_str THEN 'true' ELSE 'false' END AS is_equal
from   tbl;

字符串
哪些输出:
| 编号_AS_STR| IS_EQUAL| IS_EQUAL |
| --|--| ------------ |
| 三个|假的| false |
| 二个|真的| true |
fiddle

相关问题