我的查询中有一个'UNION'的postgres。
我用过滤器。
我需要运行'UNION',有时是,有时不是。
根据我的需要,我可以使用布尔参数取消这个'UNION'吗?
SELECT *
FROM
sales2007q1
UNION // With a boolean say if I want or not, execute this union
SELECT *
FROM
sales2007q2;
答案 0 :(得分:1)
您应该只能在使用参数的union查询的后半部分添加WHERE
子句:
SELECT *
FROM sales2007q1
UNION
SELECT *
FROM sales2007q2
WHERE ?
如果您看到?
占位符,则可以绑定Java代码中的布尔值。例如,如果参数为false,则查询将如下所示:
SELECT *
FROM sales2007q1
UNION
SELECT *
FROM sales2007q2
WHERE FALSE;
在这种情况下,union的后半部分只会返回一个空结果集,因为WHERE
条件对于每条记录都会失败。