Dimanche 9 octobre 2011 7 09 /10 /Oct /2011 22:35

Comment paginer et compter dans une même requête SQL
La pagination du côté SQL est assez simple mais nécessite souvent de faire deux requêtes :
  - une pour retourner les résultats
  - une seconde pour compter
 
Sous SQL Server (et Oracle), on peut faire les deux en même temps en utilisant les fonctions analytiques. Voici un exemple qui renvoit les utilisateurs d'une base tiers.
 
SELECT *

  FROM (

SELECT Users.UserId         

                   , Users.FirstName

                  , Users.LastName

                  , Users.Email

                  , Users.LastUpdateDate

                  , Users.LastUpdaterId 

                  , row_number() over(order by Users.CreationDate desc)  AS [rownum]

                  , count(*) over (partition by 1) as [persoCount]

FROM [SystemUser].Users Users

)

T

WHERE [rownum] between 1 and 10

Par Fky - Publié dans : Sql Server
Ecrire un commentaire - Voir les 0 commentaires
Retour à l'accueil

Recherche

Catégories

Qui est Fky ?

  • Fky
  • Fky sur le Net
  • Homme
  • 10/06/1975
  • Architecte de solutions logicielles, je travaille dans les agences web et les cabinets d'étude informatique
Créer un blog gratuit sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus