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

Recuperar registros cada cierto Valor

Estas en el tema de Recuperar registros cada cierto Valor en el foro de SQL Server en Foros del Web. Saludos Necesito poder recuperar los valores de una tabla cada cierto valor. Por ejemplo ocupe el ROW_NUMBER() para enumerar los registros. Como podría recuperar por ...
  #1 (permalink)  
Antiguo 04/07/2014, 10:34
 
Fecha de Ingreso: enero-2010
Ubicación: Stgo - Chile
Mensajes: 73
Antigüedad: 14 años, 3 meses
Puntos: 0
Recuperar registros cada cierto Valor

Saludos

Necesito poder recuperar los valores de una tabla cada cierto valor. Por ejemplo ocupe el ROW_NUMBER() para enumerar los registros. Como podría recuperar por ejemplo cada 20 registros?

Ejemplo
20
40
60

Puede ser fácil, pero soy novato en esto. Muchas gracias.
  #2 (permalink)  
Antiguo 04/07/2014, 11:00
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Recuperar registros cada cierto Valor

ya probaste con algo como esto:

Código SQL:
Ver original
  1. SELECT * FROM(
  2. SELECT *,ROW_NUMBER() OVER(partition BY campo ORDER BY campo) AS rn FROM tabla
  3. ) t1 WHERE rn IN (20,40,60)

porque la insistencia en poner "esque soy novato" que es lo que esperas con afirmaciones como esas???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 04/07/2014, 11:52
 
Fecha de Ingreso: enero-2010
Ubicación: Stgo - Chile
Mensajes: 73
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Recuperar registros cada cierto Valor

Hola

Gracias por la respuesta. Es que a veces quizás esta pregunta parece sencilla para algunos.

Se me habia ocurrido hacerlo de esa forma con un IN, pero como podria recuperar los valores por ejemplo si tengo que pasar por parametro el criterio. Osea que a veces sea cada 5 registros, aveces cada 10, etc.

Gracias de antemano.
  #4 (permalink)  
Antiguo 04/07/2014, 13:15
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Recuperar registros cada cierto Valor

ya depende de como sea el parametro, puede ser con un query dinamico con una funcion etc, mira te dejo una funcion que te puede servir:

Código SQL:
Ver original
  1. CREATE FUNCTION [dbo].[SplitApplication](@applicationid VARCHAR(2000))
  2.  
  3. RETURNS @RtnValue TABLE
  4. (
  5. Id INT IDENTITY(1,1),
  6. DATA nvarchar(100)
  7. )
  8. AS
  9. BEGIN
  10. DECLARE @Cnt INT, @SplitOn nvarchar(5)
  11. SET @SplitOn = ','
  12. SET @Cnt = 1
  13.  
  14. While (Charindex(@SplitOn,@applicationid)>0)
  15. BEGIN
  16. INSERT INTO @RtnValue (DATA)
  17. SELECT
  18. DATA = ltrim(rtrim(SUBSTRING(@applicationid,1,Charindex(@SplitOn,@applicationid)-1)))
  19.  
  20. SET @applicationid = SUBSTRING(@applicationid,Charindex(@SplitOn,@applicationid)+1,len(@applicationid))
  21. SET @Cnt = @Cnt + 1
  22. END
  23.  
  24. INSERT INTO @RtnValue (DATA)
  25. SELECT DATA = ltrim(rtrim(@applicationid))
  26.  
  27. RETURN
  28. END
  29.  
  30. GO
  31.  
  32.  
  33. how TO USE :
  34.  
  35. SELECT * FROM TABLE WHERE DATA IN (
  36.  
  37. SELECT DATA FROM SplitApplication('1,1,1,1')
  38. )
  39.  
  40. como la usarias en tu ejemplo:
  41.  
  42.  
  43. DECLARE @parametro VARCHAR(20)
  44. SET @parametro='10,20,30'
  45.  
  46. SELECT * FROM(
  47. SELECT *,ROW_NUMBER() OVER(partition BY campo ORDER BY campo) AS rn FROM tabla
  48. ) t1 WHERE rn IN (SELECT DATA FROM SplitApplication(@parametro))
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 04/07/2014, 13:32
 
Fecha de Ingreso: enero-2010
Ubicación: Stgo - Chile
Mensajes: 73
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Recuperar registros cada cierto Valor

muchas gracias por tu respuesta, le voy a hechar un vistazo.

Saludos Cordiales

Etiquetas: cada, registro, registros, tabla, valor
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 00:35.