Skip to content

Paginación de datos en SQL Server 2012

29/04/2013
SQLServer2012

La instrucción SELECT del lenguaje TSQL es la que nos permite obtener datos provenientes de tablas o vistas, combinadas y filtradas. Esta instrucción devuelve el total de datos que cumplen con las condiciones expresadas en la consulta. Pero en ciertas ocasiones, no son todos los datos los que necesitamos, sino una porción de ellos. Ejemplo de esto es cuando recuperamos datos para mostrarlos paginados en una grilla u otra forma de visualización.

Para ayudarnos con este problema es que Microsoft SQL Server 2012 incorpora nuevas extensiones a la cláusula ORDER BY de la instrucción SELECT, permitiendo indicar exactamente que porción de los datos se debe retornar.

La sintaxis de esta cláusula es la siguiente:

SELECT <Lista de campos>
FROM <Lista de tablas>
WHERE <Lista de condiciones>
ORDER BY <Lista de campos>
OFFSET <Registro inicial> ROWS
FETCH NEXT <Cantidad de registros por página> ROWS ONLY

Si lo aplicamos a las tablas de la base AdventureWorks2012, podemos probar el resultado de esta consulta:

SELECT ProductID,Name
FROM Production.Product
WHERE Color LIKE ‘Red%’
ORDER BY Name
OFFSET 100 ROWS
FETCH NEXT 200 ROWS ONLY

Lo que nos devuelve el resultado de la consulta comenzando en el registro 100 y conteniendo un total de 200 registros.

La sintaxis completa y el detalle de estas extensiones lo pueden encontrar aquí.

Dejar un comentario

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: