Saltar al contenido

¿Cuál es la mejor manera de obtener registros por lotes de SQL Server?

Te traemos el hallazgo a esta obstáculo, o por lo menos eso deseamos. Si continuas con inquietudes dínoslo, que sin pensarlo

Solución:

Si usa MSSQL 2012, pruebe la cláusula OFFSET-FETCH. ¡Es la mejor solución!

Ejemplo: SELECT … ORDER BY orderid OFFSET 25 ROWS obtiene solo las siguientes 25 filas.

Significa que esta consulta devolverá de 25 a 50 registros. El ORDER BY La cláusula es obligatoria, por lo que si no desea utilizar orden, utilice ORDER BY (SELECT NULL)

Si no puedes usar OFFSET-FETCH en SQL Server 2012 y suponiendo que la tabla tiene un principal key o columna(s) que le permiten identificar de forma única una fila, llamémosla UniqueKey, entonces a partir de 2005 podrías usar ROW_NUMBER como esto…

SELECT UniqueKey, col2, col3 
FROM 
(
  SELECT UniqueKey, col2, col3, ROW_NUMBER() OVER (ORDER BY UniqueKey) AS RowNum 
  FROM YourTable
) sub
WHERE sub.RowNum BETWEEN @startRow AND @endRow

Comentarios y calificaciones de la guía

Recuerda que puedes dar visibilidad a esta reseña si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *