公用表表达式(CTE)

公用表表达式(CTE,Common table expression)是和派生表很相似的另一种形式的表表达式,而且具有一些重要优势。CTE 是在 SQL Server 2005 中引入的,是ANSI SQL (1999及以后版本)标准的一部分。

例:

WITH USACusts AS

  SELECT custid,companyname

  FROM dbo.Customers

  WHERE country=N'USA'

)

SELECT * FROM USACusts;

和派生表一样,一旦外部查询完成,CTE的生命期也就结束了。

注意:T-SQL 中使用的WITH子句有几种不同的目的。为避免歧义,当用WITH子句定义CTE时,同一代码段中前面的语句(如果存在)必须用分号结束。虽然真的很奇怪,整个CTE语句的分号不是必需的,但还是建议明确指定该分号。

原文地址:https://www.cnblogs.com/zhangdx/p/3726802.html