Sql Limit

18/09/2003 - 15:18 por CoolCrash | Informe spam
Como puedo hacer esto en SQL Server

SELECT * FROM tabla ORDER BY campo LIMIT 0,20

la idea es mostrar resultados de 20 en 20 en una aplicacion..

Gracias

Salu2!

Preguntas similare

Leer las respuestas

#1 Isaías
18/09/2003 - 16:38 | Informe spam
Hola

Lo unico que se me viene a la mente, es mediante el
soporte de alguna llave Unica (PK), mas, el SET ROWCOUNT x
(donde x, es el numero de registros a mostrar), se podria
hacer un Procedimiento que te diera los resultados que
buscas.

Espero haberme explicado.
Respuesta Responder a este mensaje
#2 CoolCrash
18/09/2003 - 16:42 | Informe spam
no mucho.. no se mucho d sql..estoy haciendo una app y necesito
desplegarlos.. ya he mirado lo del set rowcount pero como lo limito x
ejemplo del resultado 20 a la 40...




"Isaías" escribió en el mensaje
news:0edc01c37df2$904bf300$
Hola

Lo unico que se me viene a la mente, es mediante el
soporte de alguna llave Unica (PK), mas, el SET ROWCOUNT x
(donde x, es el numero de registros a mostrar), se podria
hacer un Procedimiento que te diera los resultados que
buscas.

Espero haberme explicado.
Respuesta Responder a este mensaje
#3 Liliana Sorrentino
18/09/2003 - 16:49 | Informe spam
Hola,
Javier Loria publicó hace un tiempo este procedimiento que hace lo que
necesitás:
Saludos.. Liliana.

/* Paginacion de Autores */
CREATE PROCEDURE Autores_Sel
@LastNombre varchar(40) = NULL OUTPUT
AS
SET NOCOUNT ON

SELECT TOP 5 WITH TIES *
FROM AUTHORS
WHERE CASE WHEN @LastNombre IS NULL THEN 1
WHEN @LastNombre<au_fname THEN 1
ELSE 0
END=1
ORDER BY AU_FNAME
SELECT @LastNombre=MAX(AU_FNAME)
FROM ( SELECT TOP 5 au_fname
FROM AUTHORS
WHERE CASE WHEN @LastNombre IS NULL THEN 1
WHEN @LastNombre<au_fname THEN 1
ELSE 0
END=1
ORDER BY AU_FNAME) AS N
GO
/* Fin de Declaracion de Procedimiento */

/* Uso de Procedimiento */
DECLARE @UltimoApellido varchar(40)

EXEC Autores_Sel @UltimoApellido OUTPUT
EXEC Autores_Sel @UltimoApellido OUTPUT
EXEC Autores_Sel @UltimoApellido OUTPUT
EXEC Autores_Sel @UltimoApellido OUTPUT
EXEC Autores_Sel @UltimoApellido OUTPUT
/* Fin de Procedimiento */

Esto te permitira en la aplicacion cliente pedir bloques de filas
"consecutivos", usando el filtro y la siguiente corrida obtiene los
siguientes.

"CoolCrash" escribió en el mensaje
news:#
no mucho.. no se mucho d sql..estoy haciendo una app y necesito
desplegarlos.. ya he mirado lo del set rowcount pero como lo limito x
ejemplo del resultado 20 a la 40...




"Isaías" escribió en el mensaje
news:0edc01c37df2$904bf300$
> Hola
>
> Lo unico que se me viene a la mente, es mediante el
> soporte de alguna llave Unica (PK), mas, el SET ROWCOUNT x
> (donde x, es el numero de registros a mostrar), se podria
> hacer un Procedimiento que te diera los resultados que
> buscas.
>
> Espero haberme explicado.


Respuesta Responder a este mensaje
#4 Diego Uribe
18/09/2003 - 17:31 | Informe spam
Yo pregunte lo mismo una solución viable puede ser

TABLA ( codigo, descripción )

* Para mostrar los primeros 10:
Select top 10 * from TABLA where x=y and codigo not in (Select top 0 codigo
from TABLA where x=y)
* Para mostrar los segundos 10:
Select top 10 * from TABLA where x=y and codigo not in (Select top 10 codigo
from TABLA where x=y)
* Para mostrar los terceros 10:
Select top 10 * from TABLA where x=y and codigo not in (Select top 20 codigo
from TABLA where x=y)


"CoolCrash" escribió en el mensaje
news:%
Como puedo hacer esto en SQL Server

SELECT * FROM tabla ORDER BY campo LIMIT 0,20

la idea es mostrar resultados de 20 en 20 en una aplicacion..

Gracias

Salu2!


Respuesta Responder a este mensaje
#5 CoolCrash
18/09/2003 - 21:39 | Informe spam
gracias Diego!
funciono perfecto
"Diego Uribe" escribió en el mensaje
news:
Yo pregunte lo mismo una solución viable puede ser

TABLA ( codigo, descripción )

* Para mostrar los primeros 10:
Select top 10 * from TABLA where x=y and codigo not in (Select top 0


codigo
from TABLA where x=y)
* Para mostrar los segundos 10:
Select top 10 * from TABLA where x=y and codigo not in (Select top 10


codigo
from TABLA where x=y)
* Para mostrar los terceros 10:
Select top 10 * from TABLA where x=y and codigo not in (Select top 20


codigo
from TABLA where x=y)


"CoolCrash" escribió en el mensaje
news:%
> Como puedo hacer esto en SQL Server
>
> SELECT * FROM tabla ORDER BY campo LIMIT 0,20
>
> la idea es mostrar resultados de 20 en 20 en una aplicacion..
>
> Gracias
>
> Salu2!
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida