我有一个SQL查询,比如下面的表格:
select a, b, c from table t where t.a = "hello" and t.b = "there" and t.c = "world" group by a,b,c
我希望有一个布尔条件(d == true)
来确定上面的计算,这样当d设置为true时,执行上述查询,当d为false时,查询将减少到以下并编译:
select a, b from table t where t.a = "hello" and t.b = "there" group by a,b.
如果只需要排除/包含一个字段/列/条件,则简单的if子句可以提供帮助。但我的查询是一个广泛的查询,连接等等。如果查询的添加/编辑是多个,我特别需要通过切换部分查询来测试结果集和基数的变化,这将变得难以处理 - table,column和groupby / where子句。
有关如何使用oracle 11g (sql/pl-sql/t-sql)
答案 0 :(得分:0)
我认为以下内容可以解决您的问题:
select a, b, c
from table t
where
t.a = "hello" and
t.b = "there" and
((d == true and t.c = "world") or d == false)
group by a,b,c
(我不熟悉oracle sql,所以如果布尔值等于不正确,我很抱歉)