CTE就是 Common Table Expression(通用表表达式)是一个可以由定义语句引用的临时命名结果集。只须定义CTE一次,即可在查询中多次引用它。
定义
WITH Test
AS
(
SELECT * FROM dbo.CUSTOMERS
)
SELECT * FROM test
如果定义多个CTE只要在上一个CTE后面增加一个“,”,如下:
with test1
as
(
select * …………
),
test2 as
(
select * …………
)
有如下限制
1、CTE with前的语句必须使用“;”,否则报错
2、CTE with之后第一句必须使用CTE的select。即CTE的生命周期只是在第一次使用之后就消亡。每个
3、sp中只能使用一次with语句。
通用表表达式(CTE)是SQL Server的一项新功能。本质上CTE是一个临时结果集,它仅仅存在于它发生的语句中。可以在SELECT、INSERT、DELETE或CREATE VIEW语句中建立一个CTE