让我们说我们有两张桌子
表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
答案 0 :(得分:1)
是 - 在后者中,在订购行之前分配rownum,在前者中,在订购行之后分配rownum。
因此,第一个查询的rownums可能会显示为" 1,2,3,4,5 ...",而第二个查询的rownums可能会读取,& #34; 33,3,5,45,1 ..."