Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Listar por Limite de Registros

Estas en el tema de Listar por Limite de Registros en el foro de SQL Server en Foros del Web. Hola a Todos tengo el siguiente problema q hasta ahora no puedo solucionar pero = siguo buscando tengo una cierta tabla con mas de 50 ...
  #1 (permalink)  
Antiguo 17/04/2009, 10:32
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 11 meses
Puntos: 220
Listar por Limite de Registros

Hola a Todos tengo el siguiente problema q hasta ahora no puedo solucionar pero = siguo buscando tengo una cierta tabla con mas de 50 mil registros lo q quiero hacer es un select q me realizar la consulta por una cierta cantidad de registros y a la ves se encuentren en una posicion especifica.

Lo q trato de decir es digamos el Select q me devuelva la consulta desde el registro numero 1 hasta el registro numero 100 o el registro numero 1554 hasta el registro numero 5245 y asi sucesivamente por cada consulta q realize

esto se puede en SQL Server. seguire buscando por Ahora
Gracias de Antemano
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #2 (permalink)  
Antiguo 17/04/2009, 11:27
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 9 meses
Puntos: 39
Respuesta: Listar por Limite de Registros

Puedes usar BETWEEN, o quizas OPTION (FAST n).
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 17/04/2009, 12:23
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 11 meses
Puntos: 220
Respuesta: Listar por Limite de Registros

Creo q no me has entenido ninguno de estos comando me sirve ya q yo trato de listar desde una posicion especifica como dije antes del registro 154 hasta el 258 por ejemplo sin importarme q columna sea

los comandos q me dan tienen otras opciones el between busca desde un rango q esta bien pero se le especifica la columna a validar lo cual no quiero hacer por motivo q los codigos de las columnas son compuestas y no incrementativas

el option fast(n) me lista dependiendo la condicion q haga y me toma del resultado la primera concidencia hasta el final lo cual tampoco me vale ps quiero tomar de ese rango como ejemplo los resultados de la posicion 5 hasta el 8 por ejemplo
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #4 (permalink)  
Antiguo 17/04/2009, 13:01
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 11 meses
Puntos: 220
Respuesta: Listar por Limite de Registros

Hola a Todos Por Fin Lo he Solucionado tanto buscar encontre una forma de como hacer mi propio Limit tipo MySQL Server aqui les paso el Codigo en caso de q alguien tenga un problema similar al mio

Código sql:
Ver original
  1. -- =============================================
  2. -- Author:      Luis Fernando
  3. -- Create date: 10/02/2009
  4. -- Description: Procedimiento q Simula el Limit de MySQL Server
  5. -- =============================================
  6.  
  7. ALTER PROCEDURE Sp_Limit
  8. (
  9.     @TBL VARCHAR(MAX),
  10.     @COL VARCHAR(MAX),
  11.     @INI INT,
  12.     @FIN INT
  13. )
  14. AS
  15.     SET NOCOUNT ON;
  16.     BEGIN TRY
  17.         DECLARE @SQL NVARCHAR(MAX)  -- DECLARANDO VARIABLE A EJECUTAR
  18.         SET @SQL = N'SELECT * FROM
  19.                     (
  20.                         SELECT *,ROW_NUMBER() OVER(ORDER BY '+ @COL +') AS X
  21.                         FROM '+ @TBL +'
  22.                     ) AS Y WHERE X BETWEEN ' + CONVERT(VARCHAR,@INI) +' AND ' + CONVERT(VARCHAR,@FIN) +' ';
  23.         EXECUTE SP_EXECUTESQL @SQL;
  24.     END TRY
  25.     BEGIN CATCH
  26.         PRINT 'NUMERO DE ERROR: ' + CONVERT(VARCHAR,ERROR_NUMBER());
  27.         PRINT 'MENSAJE DE ERROR: ' + ERROR_MESSAGE();
  28.     END CATCH
  29. GO
  30.  
  31. -- EJEMPLO DE USO PASAR COMO PARAMETROS EL NOMBRE DE LA TABLA, LA COLUMNA A ORDENAR (ESCENCIAL)
  32. -- LA POSICION INICIAL DE DONDE VA A COMENZAR NUESTRO REGISTRO
  33. -- LA POSICION FINAL EN DONDE VA A TERMINAR NUESTRO REGISTRO
  34.  
  35. EXECUTE Sp_Limit 'NOMTABLA','CODE',15,35
  36.  
  37. -- ESTO ME GENERA UN RESULTADO DE LA CONSULTA DESDE LA POSICION 15 HASTA LA POSICION 35 ALGO SIMILAR Q EL LIMIT DE MYSQL
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #5 (permalink)  
Antiguo 17/04/2009, 13:12
Avatar de vrenzo  
Fecha de Ingreso: febrero-2007
Mensajes: 289
Antigüedad: 17 años, 3 meses
Puntos: 15
Respuesta: Listar por Limite de Registros

Puedes hacer procedimiento usando un cursor que te de los resultados por rangos... claro que el rango lo tendrías que pasarlo como variable...
  #6 (permalink)  
Antiguo 17/04/2009, 13:16
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 11 meses
Puntos: 220
Respuesta: Listar por Limite de Registros

Lo Hubiera hecho de esa manera como tu dices el problema q tendria q crear un cursor por cada tabla q recorra y ademas asignarle las filas a unas variables lo cual se haria mas largo el procedimiento y mas tedioso por eso el proc q cree arriba me facilita menos codigo y mas rapides en la devolucion de datos
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:42.