mssql sql server cte表达式用法简介


摘要:
下文主要讲述CTE表达式的用法及使用场景



cte表达式简介及语法说明

cte功能:
cte表达式是一个虚拟的内存表,它采用特殊的语法结构,可以将 查询放入指定的对象中,供后期sql脚本调用
cte表达式可以理解为一个临时视图,cte表达式名称就是视图名
cte表达式可应用于子查询中,起到简化sql脚本的目的
使用cte表达式,可使sql脚本,结构清晰,增强可读性和后期的维护性
——————————————————————–

cte表达式的语法结构:
with CTE表达式名称 (列名) as
(
查询语句
)

———-使用cte表达式——————-
select * from CTE表达式名称


    create table A(keyId int identity,name varchar(20))
go

insert into A(name)values('a')
insert into A(name)values('B')
insert into A(name)values('C') 
go
 
-----生成cte表达式---
with cteName (keyId,name)
as
(
 select keyId,name from A 
 union all
 select 120,'test'
) select count(1) from cteName
go

----同时生成两个cte表达式 采用逗号分隔
with cteName (keyId,name)
as
(
 select keyId,name from A 
 union all
 select 120,'test'
),[cteNameTwo] (keyId,name)
 as
 (
  select keyId,name from A 
 union all
 select 128,'infor'
 )  select count(1) from cteName
go



truncate table A 
drop table A