写法一:(得到结果一)select e.empno,e.ename,d.deptno,d.dname,d.loc
from emp e,dept d
where e.deptno(+)=d.deptno;结果一:
EMPNO ENAME DEPTNO DNAME LOC
---------- ---------- ---------- -------------- -------------
7782 CLARK 10 ACCOUNTING NEW YORK
7839 KING 10 ACCOUNTING NEW YORK
7934 MILLER 10 ACCOUNTING NEW YORK
7369 SMITH 20 RESEARCH DALLAS
7876 ADAMS 20 RESEARCH DALLAS
7902 FORD 20 RESEARCH DALLAS
7788 SCOTT 20 RESEARCH DALLAS
7566 JONES 20 RESEARCH DALLAS
7499 ALLEN 30 SALES CHICAGO
7698 BLAKE 30 SALES CHICAGO
7654 MARTIN 30 SALES CHICAGO
7900 JAMES 30 SALES CHICAGO
7844 TURNER 30 SALES CHICAGO
7521 WARD 30 SALES CHICAGO
40 OPERATIONS BOSTON已选择15行
写法二:(得到结果二)select e.empno,e.ename,d.deptno,d.dname,d.loc
FROM emp e RIGHT OUTER JOIN dept d
ON (e.deptno=d.deptno);结果二: EMPNO ENAME DEPTNO DNAME LOC
---------- ---------- ---------- -------------- ----------
7369 SMITH 20 RESEARCH DALLAS
7499 ALLEN 30 SALES CHICAGO
7521 WARD 30 SALES CHICAGO
7566 JONES 20 RESEARCH DALLAS
7654 MARTIN 30 SALES CHICAGO
7698 BLAKE 30 SALES CHICAGO
7782 CLARK 10 ACCOUNTING NEW YORK
7788 SCOTT 20 RESEARCH DALLAS
7839 KING 10 ACCOUNTING NEW YORK
7844 TURNER 30 SALES CHICAGO
7876 ADAMS 20 RESEARCH DALLAS
7900 JAMES 30 SALES CHICAGO
7902 FORD 20 RESEARCH DALLAS
7934 MILLER 10 ACCOUNTING NEW YORK
40 OPERATIONS BOSTON已选择15行
得到的结果是一样的,但是这两种写法得到的结果也有细微的区别:排序不同!
我的问题,这个不同的排序时如何引起的?
from emp e,dept d
where e.deptno(+)=d.deptno;结果一:
EMPNO ENAME DEPTNO DNAME LOC
---------- ---------- ---------- -------------- -------------
7782 CLARK 10 ACCOUNTING NEW YORK
7839 KING 10 ACCOUNTING NEW YORK
7934 MILLER 10 ACCOUNTING NEW YORK
7369 SMITH 20 RESEARCH DALLAS
7876 ADAMS 20 RESEARCH DALLAS
7902 FORD 20 RESEARCH DALLAS
7788 SCOTT 20 RESEARCH DALLAS
7566 JONES 20 RESEARCH DALLAS
7499 ALLEN 30 SALES CHICAGO
7698 BLAKE 30 SALES CHICAGO
7654 MARTIN 30 SALES CHICAGO
7900 JAMES 30 SALES CHICAGO
7844 TURNER 30 SALES CHICAGO
7521 WARD 30 SALES CHICAGO
40 OPERATIONS BOSTON已选择15行
写法二:(得到结果二)select e.empno,e.ename,d.deptno,d.dname,d.loc
FROM emp e RIGHT OUTER JOIN dept d
ON (e.deptno=d.deptno);结果二: EMPNO ENAME DEPTNO DNAME LOC
---------- ---------- ---------- -------------- ----------
7369 SMITH 20 RESEARCH DALLAS
7499 ALLEN 30 SALES CHICAGO
7521 WARD 30 SALES CHICAGO
7566 JONES 20 RESEARCH DALLAS
7654 MARTIN 30 SALES CHICAGO
7698 BLAKE 30 SALES CHICAGO
7782 CLARK 10 ACCOUNTING NEW YORK
7788 SCOTT 20 RESEARCH DALLAS
7839 KING 10 ACCOUNTING NEW YORK
7844 TURNER 30 SALES CHICAGO
7876 ADAMS 20 RESEARCH DALLAS
7900 JAMES 30 SALES CHICAGO
7902 FORD 20 RESEARCH DALLAS
7934 MILLER 10 ACCOUNTING NEW YORK
40 OPERATIONS BOSTON已选择15行
得到的结果是一样的,但是这两种写法得到的结果也有细微的区别:排序不同!
我的问题,这个不同的排序时如何引起的?
解决方案 »
- 【新手请教】关于oracle 导入dmp文件的问题!
- USER_IND_COLUMNS 这个表有什么作用?
- 怎么把sybase备份的xxx dat文件导入到Oracle
- 问个sql语句写法的问题,请诸位帮忙
- 再线急等!(关于union)
- 怎样实现把数据库的逻辑备份或者其它关键的文件传到另一个地区,实现远端备份?
- 使用DBCA创建数据库失败,提示ORA-01092:ORACLE例程终止。强制断开连接
- 在线等待,关于函数!!!!
- 求一sql,检索指定数目的数据
- 我装了Oracle815之后,然后我把它卸载了,想安装Oracle817,点setup之后没有任何反应,是什么原因?(机器是p4的)
- 怎么取oracle表中的最新数据
- sql查询语句快慢问题
第一个按deptno排序
第二个按empno排序
为什么我不懂。关注楼下的回答
1999语法对SQL的支持:
SELECT table1.column,table2.column
FROM table1 [CROSS JOIN table2] |
[NATURAL JOIN table2] |
[JOIN table2 USING(column_name)] |
[JOIN table2 ON(table1.column_name=table2.column_name)] |
[LEFT|RIGHT|FULL OUTER JOIN table2 ON(table1.column_name=table2.column_name)];还有,你说得【如果不加order by ,oracle不会保证数据的返回顺序。】不保证数据返回的顺序那也应当是随机排序吧,但是我查询的结果是这2种写法的结果是分别一致的