Para utilizar la función STRING_SPLIT en SQL Server, primero debes asegurarte de que estás trabajando con SQL Server 2016 o una versión posterior, ya que STRING_SPLIT no está disponible en versiones anteriores.
La función STRING_SPLIT se utiliza para dividir una cadena en varias filas en función de un delimitador especificado. Aquí tienes un ejemplo de cómo usarla:
Supongamos que tienes una tabla llamada MiTabla con una columna Texto que contiene el texto que deseas dividir en palabras. Puedes utilizar STRING_SPLIT de la siguiente manera:
SELECT value AS Palabra FROM MiTabla CROSS APPLY STRING_SPLIT(Texto, ' ');
En este ejemplo, estamos dividiendo el texto en la columna Texto en palabras utilizando el espacio en blanco como delimitador. STRING_SPLIT generará una fila para cada palabra en la columna Texto, y la columna resultante se llamará value.
Ten en cuenta que STRING_SPLIT devuelve un conjunto de resultados, por lo que puedes usarlo en una consulta más compleja o unir los resultados con otras tablas según tus necesidades.
Es importante mencionar que STRING_SPLIT es útil para dividir una cadena en valores separados por un solo delimitador. Si necesitas realizar divisiones más complejas o trabajar con varios delimitadores diferentes, podrías necesitar utilizar técnicas más avanzadas o funciones definidas por el usuario.
Emular STRING_SPLIT en versiones antiguas de SQL Server
Si estás trabajando con una versión muy antigua de SQL Server que no admite la función STRING_SPLIT, puedes emular su funcionalidad utilizando técnicas y funciones disponibles en esas versiones más antiguas. Una forma común de hacerlo es crear una función definida por el usuario (UDF) para dividir la cadena en partes. A continuación, te mostraré cómo crear una UDF que emula STRING_SPLIT:
CREATE FUNCTION dbo.SplitString
(
@String NVARCHAR(MAX),
@Delimiter NVARCHAR(255)
)
RETURNS @Result TABLE (Item NVARCHAR(MAX))
AS
BEGIN
DECLARE @Start INT, @End INT
SET @Start = 1
SET @End = CHARINDEX(@Delimiter, @String)
WHILE @End > 0
BEGIN
INSERT INTO @Result (Item)
SELECT SUBSTRING(@String, @Start, @End - @Start)
SET @Start = @End + LEN(@Delimiter)
SET @End = CHARINDEX(@Delimiter, @String, @Start)
END
INSERT INTO @Result (Item)
SELECT SUBSTRING(@String, @Start, LEN(@String) - @Start + 1)
RETURN
END
Una vez creada esta función, puedes usarla para dividir una cadena en partes:
SELECT Item
FROM dbo.SplitString('Manzana,Plátano,Uva', ',')
Este ejemplo dividirá la cadena 'Manzana,Plátano,Uva' en partes utilizando la coma , como delimitador y devolverá las partes como filas en una tabla resultante.
Recuerda que esta solución está diseñada para versiones antiguas de SQL Server que no admiten STRING_SPLIT. Si estás utilizando SQL Server 2016 o posterior, te recomendaría utilizar STRING_SPLIT, ya que es más eficiente y está optimizado para esta tarea.




Deja un comentario