Bonjour,

Je cherche à savoir quelle est la meilleur requête sql (pour sql server) pour effectuer un select avec limit et offset (on trouve assez bien d'exemples sur le web).
En voici un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
SELECT 
    [ID_Donnee]
      ,[Valeur]
 FROM
 (SELECT TOP 20 
        row_number() 
        OVER 
        (ORDER BY [ID_Donnee]) AS rownum, [ID_Donnee]
        ,[Valeur]
        FROM   
        [Donnee]
        ) AS A
 WHERE 
 A.rownum > 10
10 = offset
20 = limit + offset

J'aimerai également obtenir à chacune de ces requêtes le nombre total de résultats mais je ne sais pas comment le faire dans la même requête.

comme ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
SELECT TotalRows,
    [ID_Donnee]
      ,[Valeur]
 FROM
 (SELECT COUNT(*) OVER () AS TotalRows,
        row_number() 
        OVER 
        (ORDER BY [ID_Donnee]) AS rownum, [ID_Donnee]
        ,[Valeur]
        FROM   
        [Donnee]
        ) AS A         
 WHERE 
 A.rownum BETWEEN 10 AND 20;
Merci d'avance pour votre aide.