Volver a la página principal
viernes 27 septiembre 2024
58

Cómo dividir cadenas en SQL Server

¿Qué es STRING_SPLIT y para qué se usa?

STRING_SPLIT es una función integrada de SQL Server que permite dividir una cadena de caracteres en varias partes según un delimitador especificado, como una coma (,), un punto y coma (;) o cualquier otro carácter separador. La salida es una tabla con una columna llamada value que contiene cada uno de los fragmentos de la cadena original.

Esta función es ideal para:

  • Dividir cadenas concatenadas en columnas de tablas.
  • Manipular datos almacenados en listas delimitadas.
  • Filtrar, analizar o agregar datos basados en subcadenas.

STRING_SPLIT es compatible a partir de SQL Server 2016, simplificando considerablemente tareas que antes requerían funciones definidas por el usuario o procedimientos más complejos.

Sintaxis de STRING_SPLIT

STRING_SPLIT ( string, separator )
  • string: La cadena que se desea dividir.
  • separator: El carácter que actúa como delimitador para dividir la cadena.

Ejemplos de uso de STRING_SPLIT

Dividir una cadena por comas

SELECT value 
FROM STRING_SPLIT('manzana,pera,banana,naranja', ',');

Resultado:

value
------
manzana
pera
banana
naranja

Cada elemento separado por comas en la cadena se convierte en una fila distinta en la salida.

Usar STRING_SPLIT para filtrar datos en una tabla

Supongamos que tienes una tabla llamada Productos con una columna Categorias que contiene listas de categorías separadas por comas:

SELECT ProductoID, Nombre, value AS Categoria
FROM Productos
CROSS APPLY STRING_SPLIT(Categorias, ',')
WHERE value = 'Electrónica';

Este ejemplo descompone la columna Categorias en filas individuales y filtra los productos que pertenecen a la categoría "Electrónica".

Contar palabras en una cadena

Si deseas contar cuántas palabras tiene una cadena, puedes usar STRING_SPLIT y una función de agregación:

SELECT COUNT(*) AS TotalPalabras
FROM STRING_SPLIT('SQL Server es muy potente', ' ');

Resultado:

TotalPalabras
-------------
4

Aquí STRING_SPLIT descompone la cadena en palabras usando un espacio ( ) como delimitador.

Consideraciones importantes

  • La función STRING_SPLIT devuelve los elementos en el mismo orden en que aparecen en la cadena original.
  • Si el delimitador no se encuentra en la cadena, la función devuelve la cadena completa como una sola fila.
  • No admite delimitadores de más de un carácter.

Referencia oficial

Para más información sobre STRING_SPLIT, consulta la documentación oficial de Microsoft.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer