Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/10/2011, 08:05
Avatar de yamiblancoc
yamiblancoc
 
Fecha de Ingreso: agosto-2011
Mensajes: 103
Antigüedad: 12 años, 8 meses
Puntos: 4
Pregunta [b]seleccionar datos en un string[/b]

BUEN DIA,

TENGO EL SIGUIENTE STRING:

partida= |1.23.45.67|2.34.54.3|1.23.45.67|4.22.11.55.22 <--SERIA VB6.0

LUEGO TENGO MI CODIGO EN SQL, EL CUAL ES UN STORED PROCEDURE
Código:
DECLARE
@partida varchar(20),

---CONTADOR DE PIPE
@posicion int,
@pipe varchar (200),
@pipeout varchar (200),
@monto int,
@cuenta  int,
@fin char(1) 

set @pipe = @partida
set @posicion = 0
set @cuenta = 0
set @fin ='i'
while @fin <>'f'
	begin
	if @posicion = 0
	  begin 
	     select @posicion = charindex('|', @pipe)
                if @posicion <> 0
		   set @cuenta = @cuenta +1
	        end
	else
	   begin
	      select @posicion = charindex('|', @pipe,@posicion+1)			
                if @posicion <> 0
		   set @cuenta = @cuenta +1
	        end
if @posicion = 0
   set @fin = 'f'
END
select @cuenta
select @posicion = charindex('|', @pipe,2)

---BUCLE PARA BUSCAR VALOR ENTRE PIPE E INTRODUCIRLO A LA #TABLA

 DECLARE @contador int
    SET @contador = 0
    WHILE (@contador < @pipe)
    BEGIN
     	SET @contador = @contador + 1
	IF (@contador % 2 = 0)
       	    CONTINUE
    	PRINT 'Iteracion del bucle ' + cast(@contador AS varchar)
    END
LES EXPLICO ESE STRING SE ME GENERA POR VISUAL BASI LUEGO LO LLAMO AL STORED PROCEDURE, EL CONTADOR DE CARACTER ME VA A CONTAR CUANTOS PIPE (|) TIENE MI STRING Y EL WHILE ES PARA QUE ME TOME LOS VALORES QUE ESTAN DENTRO DEL STRING,EL CONTADOR FUNCIONA PERFECTAMENTE .

MI PROBLEMA ESTA EN EL WHILE EL CUAL NO ME TOMA LOS VALORES QUE ESTA DENTRO DE CADA PIPE, EN MI CASO SERIA:

1.23.45.67
2.34.54.3
1.23.45.67
4.22.11.55.22

SI NO QUE ME TOMA TODO EL STRING COMPLETO

|1.23.45.67|2.34.54.3|1.23.45.67|4.22.11.55.22

LOS NECESITO UNO POR UNO POQUE LUEGO SE INTRODUCEN EN UNA #TABLA.

SI ALGUIEN PODRA AYUDARME SE LO AGRADECERE MUCHISIMO....