Ver Mensaje Individual
  #5 (permalink)  
Antiguo 23/07/2010, 09:16
Avatar de flaviovich
flaviovich
 
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: @Parametro en el IN de una consulta SQL

Esto debe funcionar:
Código SQL:
Ver original
  1. DECLARE @abonados1 nvarchar(4000)
  2. DECLARE @abonados2 nvarchar(4000)
  3. DECLARE @tabla TABLE(abonado nvarchar(50))
  4.  
  5. SET @abonados1 = 'BB0048,BB9682,BB1597'
  6. SET @abonados2 = 'BB0123,BB0071'
  7.  
  8. DECLARE @ini SMALLINT
  9. DECLARE @fin SMALLINT
  10.  
  11. SELECT @ini = 0, @fin = charindex(',', @abonados1, @ini + 1)
  12.  
  13. while @fin <> 0
  14. BEGIN
  15.     INSERT INTO @tabla SELECT SUBSTRING(@abonados1, @ini+1, @fin - @ini - 1)
  16.     SET @ini = charindex(',', @abonados1, @ini + 1)
  17.     SET @fin = charindex(',', @abonados1, @ini + 1)
  18. END
  19. INSERT INTO @tabla SELECT SUBSTRING(@abonados1, @ini+1, len(@abonados1))
  20.  
  21. SELECT * FROM dbo.[system] WHERE EXISTS(SELECT 1 FROM @tabla WHERE cs_no = abonado)
Si son mas de 4000 caracteres usa un parametro mas: @abonados2.
Solo quedaria agregar los abonados del segundo parametro.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.