post icon

Paginar consultas SQL con SQL Server 2012 o superior

Hace unos años veíamos como realizar consultas paginadas con sql en distintos motores, hacerlo con SQL Server con versiones inferiores a 2012 era bastante engorroso, llevaba un código molesto de leer e implementar y que puede cuestionarse su impacto negativo en el rendimiento en ciertas circunstancias.

Hoy veremos como puede hacerse esto de una forma más prolija y basada en SQL ANSI por fin lo haz hecho Microsoft.

La primer opción que tenemos es omitir una cantidad X de las primeras filas con la claúsula

OFFSET

-- esto mostrará desde la sexta fila hasta el final
select * from dbo.Tabla order by Id
 offset 5 rows
-- row o rows puede escribirse indistintamente

Para recuperar entre un rango, ejemple a partir de la decima fila y las siguientes 12 filas utilizaríamos FETCH

-- esto mostrará desde la decima fila y las siguientes 12
select * from dbo.Tabla order by Id
 offset 9 rows fetch next 12 rows only
-- se puede utilizar next o first indistintamente
-- row o rows puede escribirse indistintamente

PD: cabe mencionar que los valores de paginación pueden ser modificados de forma dinámica con variables int

10 septiembre 2014

Comentarios desde Facebook:

Sin Comentarios aun, puedes tú ser el primero en comentar!

Deja tu Comentario

Responder