《Oracle多行子查询.docx》由会员分享,可在线阅读,更多相关《Oracle多行子查询.docx(2页珍藏版)》请在三一办公上搜索。
1、Oracle 多行子查询Oracle 多行子查询 多行子查询可以返回单列多行的数据。在这种多行子查询中,必须使用多行运算符来判断,而不能使用单行运算符。使用多行运算符可以执行与一个或多个数据的比较操作。在Oracle系统中,可以使用的多行比较运算符包括:IN、ANY和ALL。 ANY运算符表示与子查询中的每一个值进行比较。这时,需要将单行比较运算符与该运算符组合起来使用。与单行比较运算符组合之后,所使用的ANY运算符结果如下: l any 表示大于最小值。 对于ALL运算符而言,与单行比较运算符组合之后,所使用的ANY运算符结果如下: l all 表示大于最大值。 在下面的示例中,将练习使用A
2、LL、ANY和IN运算符进行查询。 以SCOTT身份连接到数据库。 在子查询的比较条件中,使用ANY运算符查询大于MANAGER职位中最小薪金的员工信息。 SQL select empno,ename,job,sal 2 from emp 3 where salany(select sal 4 from emp where job=MANAGER); EMPNO ENAME JOB SAL - - - - 7839 KING PRESIDENT 5000 . 7782 CLARK MANAGER 2450 已选择6行。 下面是使用IN运算符的多行子查询,用于查询属于ACCOUNTING和RES
3、EARCH部门的员工信息。 SQL select empno,ename,job,sal,deptno 2 from emp 3 where deptno in (select deptno from dept 4 where dname=ACCOUNTING or dname=RESEARCH); 下面是使用ALL运算符的多行子查询,用于查询薪金大于所有MANAGER职位的员工信息。 SQL select empno,ename,job,sal 2 from emp where sal all(select sal from emp where job=MANAGER); 另外,在使用IN、ALL和ANY等多行比较运算符时,还可以使用NOT运算符,表示取反。