跳转至

5.6 公用表表达式(CTE)

公用表表达式( Common Table Expression )定义一个临时结果集,你可以在 SQL 语句的范围内多次引用。 CTE 主要用于 SELECT 语句中。

要指定公用表表达式,请使用 WITH 具有一个或多个逗号分隔子句的子句。每个子条款都提供一个子查询,用于生成结果集,并将名称与子查询相关联。下面的示例定义名为的 CTE cte1cte2WITH 子句,并且是指在它们的顶层 SELECT 下面的 WITH 子句:

SQL
1
2
3
4
5
WITH
  cte1 ASSELECT ab FROM table1),
  cte2 ASSELECT cd FROM table2
SELECT bd FROM cte1 JOIN cte2
WHERE cte1.a = cte2.c;

在包含该 WITH 子句的语句中,可以引用每个 CTE 名称以访问相应的 CTE 结果集。

CTE 名称可以在其他 CTE 中引用,从而可以基于其他 CTE 定义 CTE