做数据库程序几年了,居然今天才发现有这么好一个语句:with as,实在惭愧。所谓with as你可以把他看做一个语句片段,也可以看做一个临时表(我是这么认为的)。我们可以利用with as语句对查询出的结果进行二次处理,比如汇总、分类、求平均数等,实在是太方便了。
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附近有语法错误”。
关键词:语句 CTE with