第7 讲 SQL 子查询 子查询是嵌套在一个select 语句中的另一个select 语句
当需要从一个表中检索信息,检索条件值又是来自该表本身的内部数据时,子查询非常有用
子查询可以嵌入以下SQL 子句中:where 子句、having 子句和 from 子句
例:查询工资比编号为 7566 雇员工资高的雇员姓名
SQL>select ename from emp where sal> (select sal from emp where empno=7566) order by ename; 说明: (1)子查询要用括号括起来; (2)将子查询放在比较运算符的右边; (3)不要在子查询中使用order by子句,select 语句中只能有一个order by子句,并且它只能是主 select 语句的最后一个子句
1、单行子查询 内部select 语句只返回一行结果的查询(单列)
主查询的where 子句使用单行子查询返回结果要采用单行比较运算符(=、>、>=、select ename,job,sal from emp where job= (select job from emp where ename='SCOTT') and sal> (select sal from emp where ename='JAMES'); ENAME JOB SAL ---------- --------- --------- SCOTT ANALYST 3000
00 FORD ANALYST 3000
2 单行子查询中使用组函数 例:显示工资最低的雇员姓名、工作和工资
SQL> select ename,job,sal from emp where sal=(select min(sal) from emp); ENAME