添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
瘦瘦的菠萝  ·  Configure IBM DB2 ...·  2 小时前    · 
纯真的鼠标垫  ·  ORM查询-All/One/Array/Va ...·  4 小时前    · 
无聊的金针菇  ·  SQL Server 2008 ...·  12 小时前    · 
鬼畜的柚子  ·  无法打开 源 文件 ...·  昨天    · 
宽容的自行车  ·  造血干细胞捐献知识·  18 小时前    · 
无聊的槟榔  ·  Access Denied·  22 小时前    · 
跑龙套的沙滩裤  ·  FileResult Class ...·  4 月前    · 

首先:查询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 子查询要包含在括号内

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

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

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  使用多行比较操作符。

操作符如下图:

//查询薪水小于工作岗位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