SQL SERVER – Dividir cadena de valores separados por comas en una columna usando STRING_SPLIT

En esta entrada del blog, aprenderemos sobre la función STRING_SPLIT que se introdujo anteriormente en SQL Server 2016 pero todavía no se adoptó ampliamente en la industria. Aprenderemos hoy cómo dividir la cadena de valores separados por comas en una columna usando STRING_SPLIT.

SQL SERVER - Dividir cadena de valores separados por comas en una columna usando STRING_SPLIT split_string_example0

SQL SERVER - Dividir cadena de valores separados por comas en una columna usando STRING_SPLIT split_string_example0

Por ejemplo, si tienes el siguiente conjunto de resultados y si quieres cada uno de los valores de la cadena separada por comas de la última columna en una fila separada, antes tenías que utilizar una función muy complicada en la columna que era un asesino de rendimiento.

SQL SERVER - Split Comma Separated Value String in a Column Using STRING_SPLIT split_string_example2

SQL SERVER - Dividir cadena de valores separados por comas en una columna usando STRING_SPLIT split_string_example2

Ahora podemos simplemente la función STRING_SPLIT y puede lograr que muy rápidamente. Entendamos con un ejemplo sencillo.

Primero, creemos un dato de ejemplo.

CREATE TABLE StudentClasses(ID INT, Student VARCHAR(100), Classes VARCHAR(100))GOINSERT INTO StudentClassesSELECT 1, 'Mark', 'Maths,Science,English'UNION ALLSELECT 2, 'John', 'Science,English'UNION ALLSELECT 3, 'Robert', 'Maths,English'GOSELECT *FROM StudentClassesGO

A continuación, vamos a escribir un código que dividirá la cadena de valores de comandos separados en una columna.

SELECT ID, Student, value FROM StudentClasses CROSS APPLY STRING_SPLIT(Classes, ',')GO

Eso es todo. Ya hemos terminado. Es una tarea muy sencilla con la ayuda de la nueva función. Puedes seguir limpiando tus datos de muestra ejecutando el siguiente comando.

SQL SERVER - Split Comma Separated Value String in a Column Using STRING_SPLIT split_string_example1

SQL SERVER - Dividir cadena de valores separados por comas en una columna usando STRING_SPLIT split_string_example1
DROP TABLE StudentClassesGO

Recuerda, si alguna vez recibes el siguiente error:

Msg 208, Nivel 16, Estado 1, Línea 7
Nombre de objeto inválido ‘STRING_SPLIT’.

Le sugiero que lea esta entrada del blog para la solución del error anterior. Esta función sólo funcionará si tienes el nivel de compatibilidad a 2016 o posterior.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *