+ 1
SQL order
SELECT ID, Name, City FROM customers OFFSET 3 LIMIT 4; SELECT ID, Name, City FROM customers LIMIT 4 OFFSET 3 Are the two statements equivalent in SQL.
3 Answers
+ 5
Yes
+ 1
OFFSET and LIMIT are not standard SQL clauses, they are specific to database engine, for example MySQL and PostgreSQL.
For specific rules of usage, you should check the reference manual, but in my understanding, in these two dialects, LIMIT should come first.
Also it is important to use a deterministic ORDER BY clause with offset. Otherwise you can get inconsistent result, because the SQL engine might choose internally a different query plan to execute for different offsets.
https://dev.mysql.com/doc/refman/8.0/en/select.html
https://www.postgresql.org/docs/current/queries-limit.html
Other dialects use other patterns
MS SQL Server:
SELECT TOP X
Oracle SQL:
SELECT ... OFFSET X FETCH FIRST Y ROWS
0
SELECT ID, Name, City FROM customers OFFSET 3 LIMIT 4;
SELECT ID, Name, City FROM customers LIMIT 4,3;
Then, do they make the same result? Is there any difference?
Can we use without OFFSET keyword?
Thank You