鉴于某些非常复杂且昂贵的SQL查询结果具有两列-一些复杂的data
和一个布尔值flag
,在PostgreSQL中,有一种方法可以实现:
flag
列为true
,则结果应为空。flag
值如何,结果都应完整返回。-- This needs filtering:
SELECT data, flag FROM (...) src;
答案 0 :(得分:1)
一个奇怪的要求,但是窗口函数可以做到:
SELECT data, flag
FROM (SELECT data, flag,
count(*) OVER () AS c
FROM (SELECT ...) AS src
) AS q
WHERE NOT flag OR c <> 1;