有个表(表名是Policy),有三个字段:a、b、c,这个表有两行,c列中的数据始终为0,我运行一下的sql语句。
这个问题在Oracle的新闻中心被提出了一段时间:
有个表(表名是Policy),有三个字段:a、b、c,这个表有两行,c列中的数据始终为0,我运行一下的sql语句
select * from policy order by c;
照理说,结果应该按照rowid来升序排序,但是相反的是,结果却按照rowid降序排序。
这个是10g的问题,还是我使用的问题,或者还是设置的问题?
其他的人说,最好是显式的声明排序的条件,比如rowid desc。但是这个问题引发了一个有趣的观点。
当你遇到问题的时候,最好写一个测试的例子,例如下面的例子,运行在10.2.0.1上:
drop table t1;
create table t1 (a number, b number, c number);
insert into t1 values(1,1,0);
insert into t1 values(1,1,0);
commit;
select t1.*, t1.rowid from t1 order by c;
A B C ROWID
---------- ---------- ---------- ------------------
1 1 0 AAATncAAGAAABSKAAB
1 1 0 AAATncAAGAAABSKAAA
2 rows selected. Sur