¿Qué es la paginación?

La paginación es el proceso de dividir datos grandes en conjuntos de datos más pequeños en páginas discretas. Es ampliamente utilizado en aplicaciones web.

¿Cómo funciona la paginación en MS SQL Server?

En MS SQL Serverpodemos lograr la funcionalidad de paginación usando OFFSET y FETCH cláusulas con ORDER BY en SELECT declaración

  • OFFSET: representa el número de filas que se omitirán del conjunto de resultados. Debe ser 0 o mayor que 0.
  • FETCH:Representa el número de filas que se mostrarán en el resultado.

Puntos importantes a considerar durante el uso OFFSET y FETCH:

  • ORDER BY es obligatorio para el uso OFFSET FETCH Cláusula.
  • OFFSET es obligatorio y FETCH es opcional.
  • TOP La cláusula no se puede utilizar en SELECT declaración con OFFSET FETCH.

Veamos ejemplos:

En el siguiente ejemplo, OFFSET 0 y FETCH NEXT 5 ROWS no elimine filas y devuelva las siguientes 5 filas en el conjunto de datos, que son las primeras 5 filas en el conjunto de datos.

SELECT EmployeeKey,FirstName,LastName,Title,EmailAddress,
Phone,EmergencyContactName,DepartmentName
FROM dbo.DimEmployee WITH(NOLOCK)
ORDER BY EmployeeKey 
OFFSET 0 ROWS
FETCH NEXT 5 ROWS ONLY

DESPLAZAMIENTO 0 y FETCH SIGUIENTE 5 FILAS

En el siguiente ejemplo, OFFSET 3 y FETCH NEXT 5 ROWS significa omitir las primeras 3 filas y devolver las siguientes 5 filas en el conjunto de datos.

SELECT EmployeeKey,FirstName,LastName,Title,EmailAddress,
Phone,EmergencyContactName,DepartmentName
FROM dbo.DimEmployee WITH(NOLOCK)
ORDER BY EmployeeKey 
OFFSET 3 ROWS
FETCH NEXT 5 ROWS ONLY

DESPLAZAR 3 y BUSCAR LAS 5 FILAS SIGUIENTEPageNumberRowsOfPage

  • PageNumber — Representa el número de página
  • RowsOfPage — Representa el número de filas en una página

Ahora, para calcular el número de filas que se omitirán cuando pasemos a la siguiente fórmula de página(@PageNumber-1) * @RowsOfPage se está utilizando en OFFSETy el número de filas se devolverá en FETCH.

Aquí, PageNumber es 2 y RowsOfPage es 5, lo que significa devolver el conjunto de datos para la página número 2.

DECLARE @PageNumber AS INT
       ,@RowsOfPage AS INT

SET @PageNumber=2
SET @RowsOfPage=5

SELECT EmployeeKey,FirstName,LastName,Title,EmailAddress,
Phone,EmergencyContactName,DepartmentName
FROM dbo.DimEmployee WITH(NOLOCK)
ORDER BY EmployeeKey
OFFSET (@PageNumber-1) * @RowsOfPage ROWS
FETCH NEXT @RowsOfPage ROWS ONLY

DESPLAZAMIENTO (@PageNumber-1) * @ RowsofPage y FETCH NEXT @RowsOfPage FILAS

Conclusión

En la aplicación en tiempo real, esta lógica completa se puede escribir en el procedimiento almacenado que se llama al hacer clic en el botón «Siguiente» o número de página en la aplicación web para mostrar el conjunto de registros en la página.

Todo el Cómo Paginar en MS SQL Server Usando OFFSET y FETCH [Simple] Los métodos que mencioné funcionaron bien. Gracias por leer y por favor comente a continuación con sus pensamientos sobre este artículo y comparta signalfix.net con tus amigos.