选择布尔表达式

时间:2015-02-26 17:18:11

标签: select plsql coding-style hql boolean-expression

在MySQL中我可以选择这样的布尔表达式:

select (foo > bar and some = thing) as myFlag
...

但是在其他SQL方言中(在我的例子中:Oracle PL / SQL和Hibernate HQL)它不起作用。

我找到的唯一解决方法是:

select case when (foo > bar and some = thing) then true else false end as myFlag
...

我觉得很难看。

有没有更好的方法来编写这样的表达式?

1 个答案:

答案 0 :(得分:0)

更好是一个非常主观的术语。但是,CASE语句是我所知道的将此类逻辑引入Oracle SQL语句的唯一方法。但是,PL / SQL中有一个BOOLEAN数据类型,所以如果你真正使用它,那么下面的工作就可以了。无需在块中使用SQL进行上下文切换。

DECLARE
   my_bool BOOLEAN;
BEGIN
   my_bool := 1 > 2;
END;
/