Crear función Split en Transact SQL
Como muchos ya sabréis, Transact SQL no tiene una función nativa que realice el split de una cadena de texto, por este motivo el usuario es el que tiene que ingeniárselas y crearse una función que realice el tan deseado split.
¿Qué es un Split?
Un Split nos permite dividir una cadena de texto en varias subcadenas, por defecto split divide la cadena de texto original cada vez que encuentra un espacio en blanco. Nosotros especificaremos en nuestro ejemplo qué delimitador utilizaremos para la creación de las subcadenas.
Ejemplo de Split en Transact SQL
En el ejemplo vamos a dividir la cadena de texto @String cuyo contenido es 'SQL,TUTORIALES', especificaremos que el delimitador sea la coma y el resultado debe ser la creación de dos subcadenas 'SQL' y 'TUTORIALES'.
DECLARE @NextString NVARCHAR(40)
DECLARE @Pos INT
DECLARE @NextPos INT
DECLARE @String NVARCHAR(40)
DECLARE @Delimiter NVARCHAR(40)
SET @String ='SQL,TUTORIALES'
SET @Delimiter = ','
SET @String = @String + @Delimiter
SET @Pos = charindex(@Delimiter,@String)
WHILE (@pos <> 0)
BEGIN
SET @NextString = substring(@String,1,@Pos - 1)
SELECT @NextString -- Show Results
SET @String = substring(@String,@pos+1,len(@String))
SET @pos = charindex(@Delimiter,@String)
END
El código de arriba dará como resultado:
- SQL
- TUTORIALES