Subject Re: [firebird-support] How do I limit an SQL search list to 10 records?
Author Kjell Rilbe
Den 2019-12-12 kl. 22:36, skrev Clyde Eisenbeis cte677@...
[firebird-support]:
> Marcin, Minor tweak => works!  I also added DESC to retrieve the
> newest records using the field key name (number is an auto increment).
> `````````````````
> "SELECT FIRST " + stNumOfRecordsToRetrieve + " * FROM " + stTableName
> + " ORDER BY " + fstKeyID + " DESC";
> `````````````````
> It's interesting that the newest records are found first (DESC), then
> the number of records retrieved are from those DESC record results.


Yes, the "subset clause" is applied last of all, so specified ordering
will be respected.

Unless I'm mistaken, FIRST N is Firebird specific. The SQL standard
syntax for this is:

SELECT *
FROM T
ORDER BY YOUR_KEY DESC
ROWS N;

where N would be the number of rows to retrieve. You also have:

SELECT *
FROM T
ORDER BY YOUR_KEY DESC
ROWS N TO M;

which will retrieve records N, N+1, N+2, ..., M. Useful for pagination
and not supported, as far as I know, by the Firebird specific syntax.

Regards,
Kjell



[Non-text portions of this message have been removed]