with as查询功能还是比较有用的,看下面的例子:
with t as
(select 'a' f1,1 f2,'aa' f3 from dual
union
select 'a' ,2 ,'bb' from dual
union
select 'a' ,3 ,'cc' from dual)
select distinct f1,max(f2) over(partition by f1 ) f2 ,max(f3) over(partition by f1 )f3 from t
这个例子是使用:
(select 'a' f1,1 f2,'aa' f3 from dual
union
select 'a' ,2 ,'bb' from dual
union
select 'a' ,3 ,'cc' from dual)
作为被查询的表格,后面紧跟着查询语句:
select distinct f1,max(f2) over(partition by f1 ) f2 ,max(f3) over(partition by f1 )f3 from t
这样的SQL可以在不使用临时表或者视图的时候快速的进行查询结果集再次查询。
本文介绍了一种使用 WITHAS 结构进行高效 SQL 查询的方法,通过创建一个临时的结果集,并立即在其上执行进一步的操作,避免了创建临时表或视图的需求。

被折叠的 条评论
为什么被折叠?



