Oracle 子查询因子化 浅谈(with的使用)

2015-02-02 13:37:57 · 作者: · 浏览: 23

因子化的查询不一定可以提高效率,但是一定可以再提高程序的可读性方面成效显著



--with 语句


with sales_c (


? ? ? ? select sales,e_NO,e_name from emplyee


)


select * from sales_c;


--查询的结果就是( select sales,e_NO,e_name from emplyee)这张字表中的内容


--with一次声明,在下面的例子中可以随意的使用,提升了代码的可读性


?


--例如


with sales_c (


? ? ? ? select sales,e_NO,e_name from emplyee


),


? ? name_c(


? ? ? select sales,e_name from sales_c


)


select * from sales_c,name_c;


--读起来确实很方便


原理:Oracle会把with query_name的这个query_name作为一个临时表或者视图固化下来,提升查询的效率