PostgreSQL WITH

WITH(CTE,公共表表达式)把子查询命名复用,让复杂查询分步可读;支持 WITH RECURSIVE 递归。

Intermediate
Key PointsPostgreSQL,WITH,CTE,递归查询

讲解

WITH(CTE,公共表表达式)把子查询命名复用,让复杂查询分步可读;支持 WITH RECURSIVE 递归。

示例

SQL
WITH top_sal AS (
  SELECT * FROM company WHERE salary > 5000
)
SELECT name FROM top_sal WHERE age > 25;

WITH RECURSIVE t(n) AS (
  SELECT 1 UNION ALL SELECT n+1 FROM t WHERE n < 5
)
SELECT sum(n) FROM t;
Output
 name
------
 Tom

 sum
-----
 15

Friends & Partners