Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Bases de Datos General (http://www.forosdelweb.com/f21/)
-   -   LIMIT con SQL Server (http://www.forosdelweb.com/f21/limit-con-sql-server-584187/)

cmarrero 08/05/2008 06:32

LIMIT con SQL Server
 
No puedo creer que no exista el LIMIT N, N en SQL server 2005 Express...

Esto me impide hacer un millon de cosas....

Cual seria la solucion para crear un LIMIT N, N en SQL server.......

Vi consultas con TOP N, pero trae de 0 hasta N, despues vi hacer subconsultas super complicadas que no las entiendo...

Una Ayudita con esto, necesito Horientacion....

Gracias

quimfv 08/05/2008 09:49

Re: LIMIT con SQL Server
 
No se si hay otras soluciones pero esta no parece complicada.

Si partimos de que simpre tenemos que usar algun campo de ordenación puesto que en las bases de datos relacionales el orden de insercion de los registros no debe importar, por eso hay que escoger siempre un criterio de ordenación.

Código:


select top M * from
          (select top N+M ColumnA, ColumnB ... from tablaX order by fld) a
order by fld desc

En la subconsulta selecionamos los N+M registros ordenados ascendentemente por "fld", en la principal seleccionamos de los anteriores los M primeros pero ordenados descendentemente por "fld", con lo que conseguimos lo mismo que si usaras LIMIT N, M.

Con numeros

Código:

Select top 5 * from
    (select top 20 ColumnA, ColumnB ... from tablaX order by fld)
order by fld desc;

Esto te da lo mismo que LIMIT 16, 20 bueno del 16 al 20

Un engorro pero no todo es ANSI SQL.


Quim

Beakdan 08/05/2008 09:49

Re: LIMIT con SQL Server
 
Busca información sobre las funciones de Ranking, perticularmente la función ROW_NUMBER(). No es tan directo como LIMIT, pero la función está especificada en el estándar SQL2003.


La zona horaria es GMT -6. Ahora son las 21:38.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.