cte with as 用法



with cstable as
(
select '1' 自动编号,'2005001'  学号 ,'张三' 姓名,'0001' 课程编号,'数学' 课程名称,'69' 分数 from sysobjects union all
select '2' 自动编号,'2005002' 学号,'李四' 姓名,'0001' 课程编号,'数学' 课程名称 ,'89' 分数 from sysobjects 
)


select * from cstable;




with as语法:with 数据表别名 as (select * from ...)

实际应用实例:

with t as (select * from emp where depno=10)

select * from t where empno=xxx

union all sum(col1) as colsum from t

看到了吧?可以很方便的对这个临时表t进行过滤、汇总等操作。而且这种方法比其它的sql语句效率要高很多!

需要注意的是,with as(CTE)属于sql server2005及以上版本才拥有的功能,如果在sql server 2000上执行,会提示错误“WITH附近有语法错误”。


你可能感兴趣的:(SQLSERVER)