El problema es que SQL no tiene una función especifica para realizar esta acción, por lo que una solución seria implementar nuestra propia función Split. Lo que haremos es crear una función la cual reciba como parámetros una cadena y un delimitador tipo varchar, y esta separara cada uno de los valores de la cadena y los insertara como filas a una variable tipo tabla, desde la cual ya podemos utilizarlos como si fueran registros separados.
Veamos el código de esta función:
CREATE FUNCTION Split ( @CADENA AS VARCHAR (MAX), @DELIMITER AS VARCHAR(10) ) RETURNS @tt TABLE(item VARCHAR(255)) AS BEGIN SET @CADENA+= @DELIMITER DECLARE @AUX AS VARCHAR(255) WHILE (LEN(@CADENA) > 0) BEGIN SET @AUX= SUBSTRING(@CADENA, 1,CHARINDEX(@DELIMITER, @CADENA)-1) INSERT INTO @tt VALUES(@AUX) SET @CADENA= SUBSTRING(@CADENA,LEN(@AUX)+2,Len(@CADENA)) END RETURN; END
Ahora veamos un ejemplo supongamos que tenemos una cadena con nombres de personas separados por coma, entonces ejecutemos la función para ver su resultado.
No hay comentarios :
Publicar un comentario