Home    | Software    | Articoli    | Tips'n Tricks    | Contattaci    | Supportaci  
Home arrow Tips'n Tricks arrow Various arrow Paginazione dei risultati in DB2

Paginazione dei risultati in DB2

Come paginare i risultati di una query in db2 quando non sia possibile usare cursori pare essere una domanda diffusa.
Supponendo di avere la seguente tabella:
create table mytable(
id integer,
field1 varchar(32),
field2 varchar(32)
);

e posto che id sia una "sequence", potremmo semplicemente fare così:
select * from mytable where id > 5 and id < 15

per estrarre 10 righe a partire dalla quinta.
Semplice, ma utile solo nel caso in cui non abbiamo clausole where o order by; nel primo caso (clausola "where") potrebbero mancare delle righe(filtrate), per cui non si avrebbe il numero di righe desiderato; nel secondo, la clausola order by mischierebbe la progressione di id, rendendola inutilizzabile.
Ma in db2 possiamo utilizzare rownumber() over(). Immaginiamo di voler estrarre 10 righe a partire dalla quinta, ordinate per field2 ascendente, la nostra istruzione sql sarà qualcosa del genere:
select temp.* from (
select rownumber() over(order by field2 asc) as nr,id,field1,field2 from mytable
) as temp where nr between 5 and 15
Basta cambiare i valori della clausola between per paginare i risultati della query.
 
Pros. >

  Articles RSS feed

Articoli pił recenti
Software pił recenti
   
designed by allmambo.com