以编程方式自定义SQL查询

时间:2016-08-16 21:58:52

标签: sql oracle11g

我有一个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)

实现此目标的任何建议

1 个答案:

答案 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,所以如果布尔值等于不正确,我很抱歉)