Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/07/2014, 13:15
Avatar de Libras
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