按职位排序

时间:2015-09-09 08:24:48

标签: oracle

让我们说我们有两张桌子

表A(A1,A2),表B(B1,B2)

在oracle下面的两个查询之间是否有任何差异(性能,内存使用情况)(只有按子句排序的顺序不同)

Select Y.*, ROWNUM rNum FROM (
    select * from 
    TableA a join TableB b on a.A1 = b.B1
    Where a.A2 = 'SomeVal'
    Order by b.B2
) A


Select Y.*, ROWNUM rNum FROM (
    select * from 
    TableA a join TableB b on a.A1 = b.B1
    Where a.A2 = 'SomeVal' 
) A
Order by B2

1 个答案:

答案 0 :(得分:1)

是 - 在后者中,在订购行之前分配rownum,在前者中,在订购行之后分配rownum。

因此,第一个查询的rownums可能会显示为" 1,2,3,4,5 ...",而第二个查询的rownums可能会读取,& #34; 33,3,5,45,1 ..."