Oracle Select TOP, utilizzare il rownum


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.

Oracle Select TOP, utilizzare il rownum ultima modifica: 2006-07-11T00:00:00+00:00 da Enrico

Comments are closed.