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

particionar cadenas dentro del stored procedure

Estas en el tema de particionar cadenas dentro del stored procedure en el foro de SQL Server en Foros del Web. Hola a todos mi problema es el siguiente: necesito separar una cadena de texto que contiene varios id's de personas separados por comas (,) es ...
  #1 (permalink)  
Antiguo 15/01/2007, 19:17
Avatar de citaem  
Fecha de Ingreso: agosto-2005
Mensajes: 218
Antigüedad: 18 años, 8 meses
Puntos: 0
particionar cadenas dentro del stored procedure

Hola a todos mi problema es el siguiente:

necesito separar una cadena de texto que contiene varios id's de personas separados por comas (,) es decir, tengo:

id_personas id_status personas
1 11
2 12
3 13
4 14

y los envio en una sola variable cada columna:

Personas = 1,2,3,4
StatusPersonas = 11,12,13,14

Como puedo separ cada id ya estando dentro del stored procedure???

soy nueva en estos procesos y no se por donde seguir.... GRACIAS
  #2 (permalink)  
Antiguo 16/01/2007, 08:29
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Re: particionar cadenas dentro del stored procedure

Creo que este post te servirá...

Particionar cadenas en SQL

Solo como comentario: No es bueno guardar de esa forma una relacion, seria mejor hace una tabla nueva donde contenga los Ids que se desean relacionar al Id del registro actual.
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 16/01/2007, 10:17
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Re: particionar cadenas dentro del stored procedure

Que tal Cita.

El siguiente es un ejemplo para recorrer una cadena separadas por comas ( o
el caracter que sea ).
Código:
DECLARE @lstCadena varchar(700)
DECLARE @lstDato varchar(7)
DECLARE @lnuPosComa int

SET @lstCadena ='100,101, 102, 103,104'		--Cadena de Ejemplo.


WHILE  LEN(@lstCadena)> 0
BEGIN
	SET @lnuPosComa = CHARINDEX(',', @lstCadena ) -- Buscamos el caracter separador
	IF ( @lnuPosComa=0 )
	BEGIN
		SET @lstDato = @lstCadena
		SET @lstCadena = ''
	END
	ELSE
	BEGIN
		SET @lstDato = Substring( @lstCadena , 1  , @lnuPosComa-1)
		SET @lstCadena = Substring( @lstCadena , @lnuPosComa + 1 , LEN(@lstCadena))
	END
	
	PRINT 'Dato: ' + ltrim(rtrim(@lstDato ))
END

Espero que te sea de utlidad.

Saludos y suerte!!
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 16:57.