在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等效的操作?
expr = expr
o8x7eapl1#
Oracle SQL没有BOOLEAN数据类型(PL/SQL有,但SQL直到版本23 c才有)。如果要计算表达式,请使用CASE表达式计算表达式并将其Map为标量值,例如True/False、Y/N或1/0:
BOOLEAN
CASE
True
False
Y
N
1
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
1条答案
按热度按时间o8x7eapl1#
Oracle SQL没有
BOOLEAN
数据类型(PL/SQL有,但SQL直到版本23 c才有)。如果要计算表达式,请使用
CASE
表达式计算表达式并将其Map为标量值,例如True
/False
、Y
/N
或1
/0
:字符串
哪些输出:
| 编号_AS_STR| IS_EQUAL| IS_EQUAL |
| --|--| ------------ |
| 三个|假的| false |
| 二个|真的| true |
fiddle