Mon ami codifie une page Web avec une grille de données qui a la pagination. Nous avons été en mesure d'obtenir le total de pagecount dans une colonne en tant que fonction de fenêtre, mais nous ne pouvons pas comprendre comment l'obtenir dans un paramètre. En voyant le code plus logique:Obtention du nombre de lignes d'une expression de table commune CTE dans un paramètre pour la pagination
DECLARE @StartRow INT
DECLARE @EndRow INT
DECLARE @PerPage INT
DECLARE @PageNumber int
SET @PerPage = 30
SET @PageNumber = 1
SET @StartRow = ((@PageNumber - 1) * @PerPage) + 1
SET @EndRow = ((@PageNumber) * @PerPage) ;
WITH cte
AS (SELECT ROW_NUMBER() OVER (ORDER BY Name) [row]
, Name
, COUNT(*) OVER () AS [rowcount]
FROM table)
SELECT row, Name, ([rowcount]/@PerPage) + 1 AS [pages]
FROM cte
WHERE row BETWEEN @StartRow AND @EndRow
OR (@PageNumber = -1)
Je ne peux pas le paramètre de la dernière sélection parce que vous ne pouvez pas définir les paramètres lorsque vous êtes également le retour des valeurs. J'espérais qu'il y aurait un moyen de le faire mais en attendant (ce qui peut être une bonne solution), nous retournons juste cela dans l'ensemble de données et tirons le nombre de pages du code de l'ensemble de données au lieu d'un paramètre de sortie. Avoir du sens? Faites-moi savoir si vous connaissez un moyen d'obtenir ceci dans un paramètre! Merci!
Comment cela obtenir le nombre de lignes dans un paramètre? – pikes