在看PostgreSQL的源代码的时候,总是看到 CTE。

所谓CTE,就是 common table express。

这里有一个小例子:

WITH test(x) AS (SELECT 1 UNION SELECT 2)
SELECT *  FROM test;

这个是官方说明:

http://www.postgresql.org/docs/9.2/static/queries-with.html

WITH provides a way to write auxiliary statements for use in a larger query. These statements, which are often referred to as Common Table Expressions or CTEs, can be thought of as defining temporary tables that exist just for one query. 

其目的,是为了简化SQL文的书写,让它至少看上去更加有条理,更加清晰。