SQL - Clausulas LIMIT y OFFSET

 
Vista:

Clausulas LIMIT y OFFSET

Publicado por Txete (2 intervenciones) el 21/08/2005 21:39:20
Hola a tod@s:

Estoy haciendo una aplicacion Web que realiza una serie de consultas contra una base de datos mostrando los registros en una página JSP. El problema es que el numero de registros mostrados es bastante grande y me gustaria hacer una paginación.

Me han dicho que existen dos clausulas de SQL que son LIMIT y OFFSET. He buscado por internet y la verdad es que no he encontrado mucha información util.
Me gustaria saber si alguno de vosotros los ha usado y si se puede utilizar con una base de datos ACCESS.

Muchas gracias a tod@s por anticipado.
CIAO.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Clausulas LIMIT y OFFSET

Publicado por Liliana (426 intervenciones) el 22/08/2005 14:51:00
Hola,
En MS SQL Server, no existen esas cláusulas.
Si estás trabajando con ese motor, te paso un código de ejemplo basado en algo preparado por Javier Loria.
Espero que te sirva,
Liliana.

/* Paginacion */
CREATE PROCEDURE #Paginacion
@Apellido varchar(40) = NULL OUTPUT, @Nombre varchar(40) = NULL OUTPUT
AS
SET NOCOUNT ON

-- Seleccione las proximas 2 filas
SELECT TOP 2 WITH TIES *
FROM #test
WHERE CASE WHEN @Apellido IS NULL THEN 1
WHEN @Apellido + @Nombre < apellido + nombre THEN 1 ELSE 0 END=1
ORDER BY apellido, nombre

-- Seleccione el siguiente apellido
SELECT @Apellido = MAX(apellido),
@Nombre = MAX(nombre)
FROM ( SELECT TOP 2 apellido, nombre
FROM #test
WHERE CASE WHEN @Apellido IS NULL THEN 1
WHEN @Apellido + @Nombre < apellido + nombre THEN 1 ELSE 0 END=1
ORDER BY apellido, nombre) AS N
GO
/* Fin de Declaracion de Procedimiento */

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

EXEC #Paginacion @UltimoApellido OUTPUT, @UltimoNombre OUTPUT
EXEC #Paginacion @UltimoApellido OUTPUT, @UltimoNombre OUTPUT
EXEC #Paginacion @UltimoApellido OUTPUT, @UltimoNombre OUTPUT
/* Fin de Procedimiento */


Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Clausulas LIMIT y OFFSET

Publicado por Txete (2 intervenciones) el 22/08/2005 21:42:24
Hola Liliana

Muchas gracias por tu ayuda, pero lo que pasa es que el codigo que me has mandado no me vale.

En realidad lo que estoy haciendo es una aplicacion en JSP con acceso mediante Jdbc a una base de datos Access.
Simplemente lo que trato de hacer es calcular el numero total de registros recuperados mediante un SELECT COUNT (eso ya ta), y segun el numero que me devuelva, colocar diferentes links para que realice una nueva búsqueda comenzando por un registro y acabando en otro.

Es decir, si el numero de registros es 100, colocar en la página JSP 10 links donde el primero realice la búsqueda desde el registro 1 hasta el 10, el segundo desde el 11 al 20...etc

Las sentencias SQL las tengo en una clase JAVA a la que accede el jsp.
Lo que trato de hacer, es pasarle los parametros necesarios al metodo que recupera los registros para que únicamente sea necesaria una sentencia que se forme segun los parametros pasados.

Muchas gracias de antemano por tu ayuda.
CIAO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar