In Mysql esiste limit, in MSSQL esiste il TOP, ed in Oracle?
In Oracle no! però esiste il rownum che ci restituisce il numero di riga.
select t.rownum as numRiga, T.*
From tabella t
RowNum è valido solo a partire dalla Versione 8i di Oracle.
Se vogliamo specificare un’ordinamento di modo da avere le prime 10 righe ordinate per id ad esempio, dobbiamo costruire una subquery e poi filtrare il rownum.
SELECT *
FROM (SELECT * FROM tabella ORDER BY id DESC)
WHERE ROWNUM < 10;
Questo perchè oracle assegna il rownum così come legge il database e non sempre l’ordinamento è quello esatto che cerchiamo, specificando invece un order by il rownum della select più esterna sarà giusto, cioè forzato con l’ordinamento esatto.
Comments are closed.