Oracle学习之子查询(二)
------- ---------- ----------
7934 MILLER 1300 10
7782 CLARK 2450 10
7839 KING 5000 10
7369 SMITH 880 20
7876 ADAMS 1100 20
7566 JONES 2975 20
7902 FORD 3000 20
7788 SCOTT 3000 20
已选择8行。
如果子查询返回了一个空值,则主查询将不会查到任何结果
Sql代码
SQL> select * from emp
2 where empno=(
3 select empno from emp
4 where deptno=40);
未选定行
子查询注意的问题:
1>、要将子查询发在圆括号内
2>、子查询可出现在WHERE子句、FROM子句、SELECT列表(此处
只能是一个单行子查询)、HAVING子句中
3>、子查询不能出现在主查询的GROUP BY语句中
4>、子查询和主查询使用表可以不同,是要子查询返回的结果能够被
主查询使用即可
5>、一般不会在子查询中使用ORDER BY语句,但在TOP-N分析中
必须使用ORDER BY语句
6>、当行子查询只能使用单行操作符,多行子查询只能使用多行操作
符
7>、采用合理的缩进和换行来提过SQL语句的可读性
8>、子查询中的空值问题
作者 dong_dong