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
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Nella stessa categoria
- Gestire la paginazione dei dati con SQL Server 2005, il 30 giugno 2005 alle 11:39
- Aprire il Command Prompt direttamente da Explorer, il 30 aprile 2005 alle 01:38
- Quando Enterprise Manager si impalla..., il 25 agosto 2004 alle 09:51
I più letti del mese