这段时间撸了一些统计的oracle方面代码,涉及到用with as的这个操作,记录下
WITH AS的含义
WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。
有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。
一次分析多次使用
with as优点
1.增加了sql的易读性,如果构造了多个子查询,结构会更清晰;
2.更重要的是:“一次分析,多次使用”,这也是为什么会提供性能的地方,达到了“少读”的目标
with as 语法
单个语法:
with tempName as (select ....)
select ...
多个语法:
with tempName1 as (select ....),
tempName2 as (select ....),
tempName3 as (select ....) ...
select ...
With查询语句不是以select开始的,而是以“WITH”关键字开头
可认为在真正进行查询之前预先构造了一个临时表TT,之后便可多次使用它做进一步的分析和处理。
总结:
with 可以就是将SQL切块,与视图差不多,可以动态的去提取数据做成模块。