这里的in后面的句子可以理解为or拼接,简单举例即 in (9566,9839,null)可以等价于mgr=9566 or mgr=9839 or mgr=null, not in (9566,9839,null)可以等价于not(mgr=9566 or mgr=9839 or mgr=null)或mgr!=9566 and mgr!=9839 and mgr!=null. 为什么都是or拼接,in可以而not in不可以呢,可以把not in理解为后面的and表达式就知道了,因为mgr=nul…
1.子查询在SELECT.UPDATE.DELETE语句内部可以出现SELECT语句.内部的SELECT语句结果可以作为外部语句中条件子句的一部分,也可以作为外部查询的临时表.子查询的类型有: ① 单行子查询:不向外部返回结果,或者只返回一行结果. ② 多行子查询:向外部返回零行.一行或者多行结果. 2.ANY 和 ALL ①<any:比子查询结果中任意的值都小,也就是说,比子查询结果中最大值还小,那么同理>any表示比子查询结果中最小的还大. SELECT ENAME,JOB,SAL FRO…
子查询返回有单行,多行和null值:适用于单行子查询的比较运算符是=,>,>=,<,<=<>和!=.适用于多行子查询的比较运算符是in,not in,any和any.在子查询中不可回避的是会返回null值,下面就这个问题来讨论一下. 在单行子查询中 SQL> select last_name,department_id from employees where department_id is null; LAST_NAME DEPARTMENT_ID -----…
oracle 子查询和组合函数 --查询与"SCOTT"在同一个部门的员工 select empno,ename,deptno from emp where deptno in (select deptno from emp where ename='SCOTT'); --查找不在销售部和财务部工作的雇员编号.姓名和部门编号. select empno,ename,deptno from emp where deptno not in (select deptno from dept…