例如,这些在性能上有何不同?
SELECT EXISTS (SELECT * FROM b WHERE a.col = b.col) AS e
FROM a
WHERE e
SELECT EXISTS (SELECT * FROM b WHERE a.col = b.col)
FROM a
WHERE EXISTS (SELECT * FROM b WHERE a.col = b.col)
子查询将被评估两次。在您的人为情况下,您可以通过编写
SELECT TRUE FROM a WHERE ...
来避免这种情况,但没有适用于每个查询的通用解决方案。