La funcionalidad para dividir texto delimitado en diferentes líneas está disponible de forma nativa desde SQL Server 2016 en adelante.
Para dividir texto delimitado en varias líneas con SQL Server, he estado utilizando funciones definidas por el usuario de T-SQL durante años antes de que saliera la versión de SQL Server 2016. De hecho, a partir de SQL Server 2016 una nueva función integrada permite esta característica. Es la función STRING_SPLIT de T-SQL.
Table of Contents
1. Valores simples separados por comas con STRING_SPLIT
Para este primer ejemplo, un caso de uso común para STRING_SPLIT es dividir una cadena de valores separados por comas (CSV) en filas individuales.
SELECT value FROM STRING_SPLIT('Manzana,Naranja,Plátano,Uvas,Mango', ','); -- Usa el segundo ejemplo para renombrar la columna SELECT value as Fruta FROM STRING_SPLIT('Manzana,Naranja,Plátano,Uvas,Mango', ',');
2. Analizar texto con separador de punto y coma en líneas con SQL Server
Otra aplicación práctica es dividir una cadena de correos electrónicos separados por punto y coma en filas individuales.
SELECT value as [Correo electrónico] FROM STRING_SPLIT('ejemplo1@email.com;ejemplo2@email.com;ejemplo3@email.com', ';')
Esto devolverá una tabla donde cada fila contiene una única dirección de correo electrónico de la cadena original.
3. Dividir una cadena de una variable en varias filas con T-SQL
En este tercer ejemplo, utilizamos ciudades. El objetivo es lograr el mismo resultado pero utilizando variables para almacenar la cadena y el separador. El código es más flexible y podría manejar datos provenientes de una tabla, por ejemplo.
-- Declaración de variables DECLARE @String nvarchar(max), @Separator char(1); -- Inicialización de la cadena y el Separador SET @String = 'Nueva York;Los Ángeles;Chicago;Houston;Phoenix;Filadelfia;San Antonio;San Diego;Dallas;San José'; SET @Separator = ';'; -- Usa la función de dividir cadena aquí en lugar de la solución XML SELECT @String = STRING_SPLIT ( @String , @Separator );
Acerca de la función STRING_SPLIT de T-SQL
La función STRING_SPLIT en T-SQL es una herramienta poderosa para la manipulación de texto, permitiendo de dividir texto delimitado en líneas con SQL Server. Ya sea manejando datos CSV o analizando cadenas complejas, STRING_SPLIT proporciona una solución sencilla para convertir texto delimitado en líneas separadas. Su simplicidad y eficacia la hacen una característica esencial para desarrolladores y administradores de bases de datos que se ocupan de tareas de procesamiento de texto y transformación de datos.
Dividir una cadena con delimitadores en múltiples columnas
¿Qué pasa si necesitas almacenar cada valor en una columna separada, por ejemplo, para preparar la importación de archivos csv con un encabezado? Aquí hay otro tutorial con un ejemplo de cómo seleccionar cada valor de la variable @String en columnas dedicadas separadas. Tutorial completo sobre cómo Dividir texto delimitado en columnas en SQL Server.
Be the first to comment