Gestire la paginazione dei dati con SQL Server

Riccardo Golia

di Riccardo Golia, in Tips & Tricks, martedì 7 dicembre 2004 ore 01.50

Archiviato in: ,

Ho trovato interessante l'articolo di Lorenzo Braidi sulla gestione della paginazione dei dati presente nel numero di novembre 2004 di Computer Programming. In particolare si spiega come riuscire ad estrarre da una tabella contenente una grande mole di dati un numero di record esattamente pari ad una prefissata dimensione di pagina.

Nel caso di SQL Server il trucco sta nell'annidare tre query una dentro all'altra:

  • la prima query estrae tutti i record fino al limite superiore filtrandoli e ordinandoli secondo quanto richiesto dall'applicazione;
  • la seconda query prende il resultset della prima, ordinato in maniera decrescente, limitatamente ai record da inserire nella pagina;
  • la terza query ripristina l'ordinamento della prima query sui record della pagina.

La query complessiva dovrebbe pertanto avere una forma di questo tipo:

SELECT TOP [dimPage] [field1], [field2], ... 
FROM (SELECT TOP [dimPage] [field1], [field2], ... 
FROM (SELECT TOP ([dimPage] * [numPage]) [field1], [field2], ... 
FROM [table] 
WHERE [conditions] 
ORDER BY [order] ASC) AS TMP1 
ORDER BY [order] DESC) AS TMP2 
ORDER BY [order] ASC

Commenti

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.



Segnala su: Facebook MSDN Social Twitter Segnalo Wikio Diggita Technorati Stumbleupon Google Yahoo FriendFeed Delicious Furl

Nella stessa categoria
I più letti del mese
TagCloud
BLOG INFO
  • 169 post, 106 commenti, 65 trackback
  • Feed blog e contenuti tecnici: RSS
  • Feed blog: RSS Atom
IN EVIDENZA