HQL / SQL中的SELECT语句中的If / Switch / Case或简单布尔算术

问题描述 投票:0回答:1

我正在寻找以下问题的理想解决方案:我有一个表,其中包含一些数据,这些数据由列[[ok(布尔)分类。如果ok为true,则数据为有效,否则为false。

现在我有一个参数

filterOff

(布尔值),该参数应执行以下操作:如果将其设置为true,则应忽略列[[ok(或同时搜索ok = TRUE和ok = FALSE)并返回所有行。如果将其设置为false,则仅应返回ok = true的那些行。如果未设置(等于NULL),则其行为应与错误的行为相同。条件

1. filterOff == NULL OR filterOff == FALSE => ok = TRUE 2. filterOff == TRUE => ok = TRUE OR ok = FALSE 第一次,我将使用sth这样的:ok <> COALESCE(filterOff, FALSE)

但是在第二种情况下缺少ok = FALSE部分。 

有人能帮忙吗?预先感谢!

最诚挚的问候

IceThunder

boolean mapping case hql coalesce
1个回答
0
投票
就是这样。
© www.soinside.com 2019 - 2024. All rights reserved.