2011/2/6 Patrick Earl <[email protected]>:
> K, I'm going to throw a wrench in the works and add a couple options.
>
> http://en.wikipedia.org/wiki/Select_(SQL)#FETCH_FIRST_clause
>
> So, to recap:
>
> Option i: SKIPPING x TAKING y SELECT ... FROM ... WHERE ... ORDER BY ...
> Option ii: SKIP x TAKE y SELECT ... FROM ... WHERE ... ORDER BY ...
> Option iii: SELECT ... FROM ... WHERE ... ORDER BY ... SKIP x TAKE y
> Option iv: SELECT ... FROM ... WHERE ... ORDER BY ... SKIPPING x TAKING y


> Option v: SELECT FIRST x SKIP y ... FROM ... WHERE ... ORDER BY ...
> Option vi: SELECT TOP x SKIP y ... FROM ... WHERE ... ORDER BY ...

Both of these seem confusing to me. Take the first 100 elements and
then skip 30, i.e. returning row 31 up to 100, that is return 70 rows?


Option iii seems natural to me - with skip/take close to order by,
since order by is usually vital in this situtation.

As for grammar.... SQL sounds like commands, not a narrative. We order
the database to select some data from rows where this and that, we
also order it to skip some rows and take others. In contract, we do
not tell a story, where we describe how the db is selecting, ordering,
and skipping. So the grammar in option iii seems correct to me.


/Oskar

Reply via email to