Postgresql

PostgreSQL 跳過 WITH 查詢

  • December 15, 2020

考慮這個 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)

引用自:https://dba.stackexchange.com/questions/281616