PostgreSQL WITH
WITH(CTE,公共表表达式)把子查询命名复用,让复杂查询分步可读;支持 WITH RECURSIVE 递归。
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讲解
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