【问题标题】:Selecting boolean expressions选择布尔表达式
【发布时间】:2015-04-29 04:48:05
【问题描述】:

在 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
...

我觉得很丑。

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

【问题讨论】:

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


    【解决方案1】:

    更好是一个非常主观的术语。但是,CASE 语句是我所知道的将这种类型的逻辑带入 Oracle SQL 语句的唯一方法。但是,PL/SQL 中有一个 BOOLEAN 数据类型,所以如果这确实是您正在使用的内容,则以下内容将起作用。无需在块中使用 SQL 进行上下文切换。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-25
      • 2010-09-21
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多