¿Como crear un limit/offset en sql server?

publicado por: Anonymous

No uso sqlserver y por tal motivo me he puesto en la tarea a consultar como crear un limit, me he dado cuenta que para traer cierta cantidad de registros de una consulta uso SELECT TOP cantidad, ejecute la consulta y efectivamente me trajo la cantidad de registros…

El problema que tengo es como decirle a la consulta que me traiga desde unvalor inicial a otro, es decir, desde el 1000 hasta el 2000.

SENTENCIA

    SELECT TOP ".$rowperpage."
      maepro.PRCODI,
      maepro.PrNomb
    FROM
      maepro
    WHERE
      maepro.PrSta = 'S' ".$searchQuery." ORDER BY maepro.PrNomb ASC";

Agradeceria el interes.

solución

Utiliza las cláusulas offset y fetch, que son parte de la cláusula order by a partir de SQL Server 2008.

Su uso es así:

  • Con offset indicas el corrimiento de filas en el que inicia tu página actual.
  • Con fetcn next X rows only indicas el tamaño de la página.

introducir la descripción de la imagen aquí

Lo que va a lucir así en una consulta:

select campo1, campo2
  from MiTabla
 order by campo2
offset 10 rows 
 fetch next 10 rows only;
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *