• oracle子查询


    子查询概念 :当一个查询的结果是另一个查询的条件时,称之为子查询。

    使用子查询注意事项:

             子查询可以嵌套多层

             子查询需要圆括号()括起来

    子查询语法:

    SELECT     select_list

    FROM       table

    WHERE    expr operator

                               (SELECT    select_list

                             FROM                  table);

    子查询 (内查询) 在主查询之前一次执行完成。

    子查询的结果被主查询使用 (外查询)。

    举例:查询员工的工资大于JONES的员工信息

    分析过程如下:

    首先:查询JONES的员工工资是多少 :结果2975

    SQL> select sal from emp where ename='JONES';

    实际上我们要查询的是:薪资大于2975的员工的信息写法如下:

    SQL> select * from emp where sal>2975;

    //综合以上写出子查询的结果如下:

    SQL> select * from emp where sal>(select sal from emp where ename='JONES');

    注意:

    子查询要包含在括号内

    将子查询放在比较条件的右侧

    根据查询的结果(内部嵌套查询的结果)把子查询的类型分为单行子查询与多行子查询,

       注意:

    l  单行操作符对应单行子查询,多行操作符对应多行子查询。

    单行操作符

    >、>=、 <、 <= 、<>、=

    举例:

    //查询编号7876相同职位的员工信息 并且薪资大于编号为7521的薪资的员工信息

    SQL> select * from emp where job=( select job from emp where empno=7876) and sal>( select sal from emp where empno=7521);

    //子查询含有组函数

    SQL> select * from emp where sal>(select avg(nvl(sal,0)) from emp);

    //子查询含有having子句查询部门的最小工资大于20号部门最小工资的部门号及最小工资数

    SQL> select deptno,min(sal) from emp group by deptno having min(sal)>( select min(sal) from emp where deptno=20);

    备注:子查询可以返回空行 没要查询到结果是可以的。

    多行子查询

    l   返回多行。

    l  使用多行比较操作符。

    操作符如下图:

    操作符

    描述

    In

    等于列表中的任何一个

    Any

    子查询返回的任意一个值比较 相同还有some

    All

    和子查询返回的所有值比较  

    Exists

     

    //查询薪水小于工作岗位CLERK的任何一个薪资的员工信息并且不包含工作岗位为CLERK的员工信息

    SQL> select * from emp where sal < any (select sal from emp where job='CLERK') and job<>'CLERK';

    //all与所有值比较 >all 代表的是大于查询结果的最大值

    SQL> select * from emp where sal > all (select sal from emp where job='CLERK') and job<>'CLERK';

    //查询岗位与部门编号为10相同的员工信息 不包含自己。

    SQL> select * from emp where job in(select job from emp where deptno=10) and deptno<>10;

    原文:http://blog.csdn.net/java958199586/article/details/7350730

  • 相关阅读:
    学习Javascript数据结构与算法(第2版)笔记(3)
    学习Javascript数据结构与算法(第2版)笔记(2)
    学习Javascript数据结构与算法(第2版)笔记(1)
    MSBI表格模型与多维模型比较
    如果存在这个表,则删除这个表的sql
    SQL对Xml字段的操作
    Dynamic CRM 2013学习笔记(六)备份和恢复
    Dynamic CRM 2013学习笔记(五)禁止修改审批通过后的单据
    Dynamic CRM 2013学习笔记(四)单据编号及插件批量注册工具
    Dynamic CRM 2013学习笔记(三)快速创建实体 EntityCreater
  • 原文地址:https://www.cnblogs.com/puresoul/p/3554506.html
Copyright © 2020-2023  润新知