> I see what you are saying about rownum not being assigned until after all
of
> the WHERE clauses have been evaluated, but surely the same would apply to
> the other RDBMS?

In other RDBMS, the limit/offset mechanism is separate from the query; it is
applied as a filter after the query is run.  In Oracle, it's part of the
query condition itself.  I imagine that internally, dbs that support native
offsets are just as inefficient as wrapping the query; you can't figure out
the 100th row the query is going to return without knowing what the first 99
rows to suppress are.

It never really makes sense to have a condition like "where rownum > 10" in
an Oracle query, because the first query that gets returned is always row
#1.  If you restrict to rownum>10, then the 10th row in the originally query
actually becomes row #1, and is no longer the 10th row... you get the
picture.  In fact, if you ever issue a query like "select * from table where
rownum > 10" to Oracle, you will never get a single row returned.

-- Bill



--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to