xehpuk Asked: 2020-12-16 10:16:01 +0800 CST2020-12-16 10:16:01 +0800 CST 2020-12-16 10:16:01 +0800 CST PostgreSQL 跳过 WITH 查询 772 考虑这个 CTE: WITH division_by_zero AS ( SELECT 1/0 ) SELECT 42 它返回 42 而不是引发错误。如何强制 PostgreSQL 评估SELECT 1/0? postgresql postgresql-10 1 个回答 Voted Best Answer Laurenz Albe 2020-12-16T10:54:00+08:002020-12-16T10:54:00+08:00 那是因为主查询没有引用division_by_zero任何地方。 文档说: [...] PostgreSQL 的实现只评估查询的行数WITH,与父查询实际获取的行数一样多。 在你的情况下为零。 如果您希望执行 CTE,您可以添加一个WHERE条件,例如 WHERE EXISTS (SELECT 1 FROM division_by_zero)
那是因为主查询没有引用
division_by_zero
任何地方。文档说:
在你的情况下为零。
如果您希望执行 CTE,您可以添加一个
WHERE
条件,例如