Oracle 高级查询

来源:互联网 发布:uv胶多少钱淘宝 编辑:程序博客网 时间:2024/06/05 14:18

1.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语句创建一个公共临时表。
因为子查询在内存临时表中,避免了重复解析,所以执行效率会提高不少。临时表在一次查询结束自动清除。
WITH Clause方法的优点
增加了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.查询的并交差

union/union all
一去重,二不去重直接并集
intersect
取二者的交集
minus
取二者的差集
select employee_id,department_id
from employees01
union/union all/intersect/minus
select employee_id,department_id
from employees02

0 0
原创粉丝点击