在 PostgreSQL 中,WITH 關鍵字用于創建一個臨時的命名查詢,也被稱為"common table expression"(通用表表達式)。WITH 語句可以用于簡化復雜查詢,提高查詢的可讀性和可維護性。
WITH 語句的基本語法如下:
WITH <expression_name> AS (
<subquery>
)
SELECT <columns>
FROM <expression_name>;
其中,<expression_name>
是表達式的名稱,<subquery>
是一個子查詢,<columns>
是要查詢的列,可以是 <expression_name>
中的列或者其他表中的列。
WITH 語句可以包含多個表達式,每個表達式之間使用逗號分隔,例如:
WITH
cte1 AS (
SELECT * FROM table1
),
cte2 AS (
SELECT * FROM table2
)
SELECT *
FROM cte1
JOIN cte2 ON cte1.id = cte2.id;
在實際使用中,WITH 語句可以用于創建遞歸查詢、多層嵌套查詢、子查詢共享等復雜查詢場景。