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
1 2 3 |
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 :
1 2 3 |
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