您的位置:首页 > 数据库 > Oracle

oracle with as 语句

2016-05-04 11:06 519 查看
1、

Oracle with语句是经常可以见到的语句,下面就为您详细介绍Oracle with语句的用法,如果您对Oracle with语句感兴趣的话,不妨一看。

当查询中多次用到某一部分时,可以用Oracle with语句创建一个公共临时表。因为子查询在内存临时表中,避免了重复解析,所以执行效率会提高不少。临时表在一次查询结束自动清除。

一般语法格式:

with   
alias_name1 as    (subquery1),  
alias_name2 as    (subQuery2),  
……  
alias_nameN as    (subQueryN)  
select col1,col2…… col3   
     from alias_name1,alias_name2……,alias_nameN 

Oracle with语句的例子:

SQL> WITH  
Q1 AS (SELECT 3 + 5 S FROM DUAL),  
    Q2 AS (SELECT 3 * 5 M FROM DUAL),  
    Q3 AS (SELECT S, M, S + M, S * M FROM Q1, Q2)  
SELECT * FROM Q3; 

输出结果:

S M S+M S*M  
---------- ---------- ---------- ----------  
8 15 23 120  

2、with 语句和时间
         有时候我们需要查询出过去几天的数据,然后展示出来,那么使用with语句如何实现呢?

         with t1 as (select to_date(‘sysdate’,'yyyy-mm-dd')-level+1  d from dual connect by  level<? order by d

         select aa

           from t1 left join tb_member t2 on to_date(to_char(t1.d,'YYYY-mm-dd'),'yyyy-mm-dd')<t2.regist_time

          group by to_char(t1.d,'YYYY-mm-dd') order by to_date(to_char(t1.d,'YYYY-mm-dd'),'yyyy-mm-dd'

  其中的select后面是要查询的属性,?为要查询的天数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: