Via Cà Matta 2 - Peschiera Borromeo (MI)
+39 02 00704272
info@synaptica.info

Firebird 2.5 rownum equivalent

Digital Innovation Partner

Firebird 2.5 rownum equivalent

Come è noto a tutti in Oracle è possibile limitare il set di dati utilizzando il predicato “rownum”, questo permette di paginare i dati ritornati da una query verso le applicazioni client.

Ad esempio se una query tornasse 1000record potremmo suddividere i risultati in venti pagine da 50record, dove la query si tradurrebbe :

paginazione dati Oracle (supponiamo di avere una tabella “anagrafiche”), dove “:nr_pagina” è il parametro della pagina che vogliamo vedere


select nome, cognome, codicefiscale from anagrafiche 
where rownum >= (50 * :nr_pagina) and rownum < (50 * (:nr_pagina + 1))
order by codicefiscale;

Identicamente in Firebird (testato sulla versione 2.5), la query si tradurrebbe :


select nome, cognome, codicefiscale from anagrafiche 
order by codicefiscale
rows >= (50 * :nr_pagina) to rows < (50 * (:nr_pagina + 1));

La sintassi è leggermente diversa ma in realtà è anche diversa l'implementazione lato server, dove l'implementazione di Oracle dovrebbe essere più efficiente. Comunque non è questo il punto, il vero beneficio di queste sintassi nono "SQL-92" compliant è la possibilità di paginare i risultati verso le applicazioni che tali dati devono mostrare.

stay tuned

Lascia un commento