UNION postgres - 根据布尔运行

时间:2018-02-15 07:05:29

标签: postgresql

我的查询中有一个'UNION'的postgres。

我用过滤器。

我需要运行'UNION',有时是,有时不是。

根据我的需要,我可以使用布尔参数取消这个'UNION'吗?

SELECT * 
FROM
 sales2007q1
UNION  // With a boolean say if I want or not, execute this union
 SELECT *
 FROM
sales2007q2;

1 个答案:

答案 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条件对于每条记录都会失败。