Partager l'article ! Comment paginer et compter dans une même requête SQL: Comment paginer et compter dans une même requête SQL La pagination du côté SQL es ...
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