Postgresql
PostgreSQL 跳過 WITH 查詢
考慮這個 CTE:
WITH division_by_zero AS ( SELECT 1/0 ) SELECT 42
它返回 42 而不是引發錯誤。如何強制 PostgreSQL 評估
SELECT 1/0
?
那是因為主查詢沒有引用
division_by_zero
任何地方。文件說:
$$ … $$PostgreSQL 的實現只計算
WITH
父查詢實際獲取的查詢行數。在你的情況下為零。
如果您希望執行 CTE,您可以添加一個
WHERE
條件,例如WHERE EXISTS (SELECT 1 FROM division_by_zero)