sql >> Databáze >  >> RDS >> Sqlserver

Získání podmnožiny záznamů spolu s celkovým počtem záznamů

Zde je to, co jsem udělal (a je to stejně rychlé, bez ohledu na to, které záznamy vrátím):

--Parameters include:
@pageNum int = 1,
@pageSize int = 0,



DECLARE 
    @pageStart int,
    @pageEnd int

SELECT
    @pageStart = @pageSize * @pageNum - (@pageSize - 1),
    @pageEnd = @pageSize * @pageNum;


SET NOCOUNT ON;
WITH tempTable AS (
    SELECT
        ROW_NUMBER() OVER (ORDER BY FirstName ASC) AS RowNumber,
        FirstName
        , LastName
    FROM People
    WHERE Active = 1
)

SELECT
    (SELECT COUNT(*) FROM tempTable) AS TotalRows,
    *
FROM tempTable
WHERE @pageEnd = 0
OR RowNumber BETWEEN @pageStart AND @pageEnd
ORDER BY RowNumber


  1. Podobné řetězce UTF-8 pro pole automatického doplňování

  2. Uložit výpočet do kódu nebo databáze?

  3. Spojení vnořených smyček a výkonové cívky

  4. Dezinfikujte vstup do sloupce v postgresu