Row limiting clause (SELECT)
How to use the right clause to limit the number of rows produced by a
SELECT statement?
IBM® Informix® SQL
supports the SKIP and FIRST/LIMIT keywords to limit the number of
rows of a result set.
For
example:
SELECT SKIP 10 FIRST 20 customer.* FROM customer ... ORDER BY cust_nameNote: It is strongly recommended to use an
ORDER BY clause when limiting the result
set rows.The above Informix SQL syntax is not portable.
Recent database engines support the row limiting clause syntax defined by the SQL
standard:
SELECT ... OFFSET n ROWS FETCH FIRST m ROWS ONLYThis should be the prefered syntax to be used, if all target database types support this
SELECT clause.
The ODI database drivers can convert
the Informix SQL
SKIP/FIRST row limiting clause to a native SQL equivalent, if the
row limiting clause parameters are simple integer literals (the clause is not translated when using
SQL parameters / program variables).Important: In addition to the
SKIP/FIRST clause of the projection clause, Informix SQL supports also a
LIMIT clause after the ORDER BY
clause:SELECT customer.* FROM customer ... ORDER BY cust_name LIMIT 10This
Informix SQL syntax construction is not converted by the ODI drivers. To benefit from the
conversion, review the code to use the Informix SQL SKIP/FIRST clause
instead.| Database Server Type | Native equivalent | Informix emulation |
|---|---|---|
| IBM DB2® LUW 11.1+ | SELECT ... ORDER BY ... |
Emulated, see details |
| IBM Informix 12+ | SELECT |
Yes, native SQL feature |
| IBM Netezza 7+ | SELECT ... ORDER BY ... LIMIT m |
Emulated, see details |
| Microsoft™ SQL Server 2012+ | SELECT ... ORDER BY ... OFFSET n ROWS |
Emulated, see details |
| Oracle® MySQL 5.5-8.0 / MariadDB 10.x | SELECT ... ORDER BY ... LIMIT m |
Emulated, see details |
| Oracle Database Server 19c+ | SELECT ... ORDER BY ... |
Emulated, see details |
| PostgreSQL 9.4+ | SELECT ... ORDER BY ... |
Emulated, see details |
| SAP HANA® 2.0+ | SELECT ... ORDER BY ... LIMIT m |
Emulated, see details |
| SQLite 3.8+ | SELECT ... ORDER BY ... LIMIT m |
Emulated, see details |