brtb
brtb

Reputation: 2311

Order by position

Lets say we have two tables

TableA (A1,A2) , TableB(B1,B2)

Is there any difference (in therms of performance, memory usage ) between the two queries (only order by clause positions are different) below in 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

Upvotes: 0

Views: 196

Answers (1)

David Aldridge
David Aldridge

Reputation: 52336

Yes -- in the latter the rownum is assigned prior to the rows being ordered, and in the former the rownum is assigned after the rows are ordered.

So the first query's rownums might read as, "1,2,3,4,5 ...", whereas the second query's rownums might read, "33,3,5,45,1 ..."

Upvotes: 1

Related Questions