SQL> select empno,dept.deptno,dname
2 from emp,dept
3 where emp.deptno(+)=dept.deptno and emp.deptno(+)=10; EMPNO DEPTNO DNAME
---------- ---------- --------------
7782 10 ACCOUNTING
7934 10 ACCOUNTING
7839 10 ACCOUNTING
20 RESEARCH
30 SALES
40 OPERATIONS已选择6行。 1 select empno,emp.deptno,dname
2 from emp,dept
3* where emp.deptno(+)=dept.deptno and emp.deptno(+)=10
SQL> / EMPNO DEPTNO DNAME
---------- ---------- --------------
7782 10 ACCOUNTING
7934 10 ACCOUNTING
7839 10 ACCOUNTING
RESEARCH
SALES
OPERATIONS已选择6行。
两个都是右连接,唯一的不同是上面查询语句是“dept.deptno”,而下面是“emp.deptno”。造成结果中deptno显示的不同。出现结果的原因是什么?
解决方案 »
- oracle关于字符串的截取。
- 关于oracle链接方式
- 请教一个表空间最多可以有多少个表?
- oracle用户与权限的问题
- 为什么在PL/SQLdeveloper上插入的数据在OEM里看不到?
- 目标主机或对象不存在
- 创建数据库ORA-12203: TNS:unable to connect to destination
- 怎样搭建一个大型ORACLE数据库?高手指点。
- 时间分组!oracle里面的decode在sqlserver里面是什么?
- orcale怎样实现模糊查询???????
- 跪求:java.sql.SQLException: OALL8 处于不一致状态,违反协议,如何解决
- Oracle 冷备份恢复及ora 1033问题
后一个select选择的dept中的deptno,由于是右链接,自然会显示其他的deptno值
这个已经把emp.deptno的只保留了10部门的了,
emp.deptno(+)=dept.deptno
这个右外链,保留了deptno所有部件的编号,
select empno,emp.deptno,dname
</code>
表示从emp表中选择部门,而条件已经将非10部门的部门给过滤掉了,所以只要10部门了。