Ver Mensaje Individual
Antiguo 08-may-2008, 09:49   #2 (permalink)
quimfv
quimfv tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 399
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

Última edición por quimfv; 08-may-2008 a las 09:56.
quimfv está desconectado   Responder Citando