• oracle 子查询


    多行子查询

    • 单行子查询只返回一行结果
    • 多行子查询返回多行结果
    • 多行子查询结果操作符(in, any, all)
    • any 与任意值比较
    • all 与所有值比较
    • in 属于集合

    in

    • in集合中有空值,忽略空值,返回不为空的行;
    • not in 集合中有空值,返回空

    any all

    • <all 小于最大
    • >all 大于最小
    • =any 相当于 in
    • >all 大于最大
    • <all 小于最小
    • != all 相当于 not in

    多列子查询

    select empno, ename, sal, job from emp
        where (job, sal) = (select job, sal from emp where empno=7788)
            and empno <> 7788;
            
    select empno, ename, sal, job from emp
        where (job, sal) in (select job, sal from emp where empno=7788)
            and empno <> 7788;
    

    相关子查询

    外层值参与内层查询的运算,执行顺序为 外层取值 - 传到内层进行运算 - 内层运算返回值参与外层运算 (循环交错查询)

    select e.ename,e.sal,e.deptno
    from emp e where e.sal > (select avg(s.sal) from emp s
                                            where e.deptno = s.deptno);
    

    非相关子查询

    内层查询与外层查询无关,子查询只执行一次,返回结果后参与外层运算

  • 相关阅读:
    线程和信号
    线程取消状态和取消类型
    线程本地缓存
    线程安全函数的概念
    线程/同步对象的属性对象
    查看安全策略
    ss性能
    三次握手四次断开
    线程同步--屏障
    vs2008 编译时候 自动关闭 问题解决方法
  • 原文地址:https://www.cnblogs.com/hyang0/p/10626453.html
Copyright © 2020-2023  润新知