Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Получаване на поднабор от записи заедно с общ брой записи

Ето какво направих (и също толкова бързо, без значение кои записи връщам):

--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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sql LEFT OUTER JOIN с клауза WHERE

  2. Защо SQL Server продължава да създава DF ограничение?

  3. Използване на BINARY_CHECKSUM(*) с множество таблици

  4. Кога трябва да използваме NVARCHAR/NCHAR вместо VARCHAR/CHAR в SQL Server?

  5. Как да получите номера на седмицата на месеца от датата в sql сървър 2008