Dividir una celda en múltiples filas en SQL Server
Dividir el valor de una única celda en varias filas duplicando la columna “id” y utilizando solo una porción del texto original. Cualquier método que no sea el uso de UNION.
Aquí está el ejemplo de los datos:
create table Spl
(
id INT,
Name VARCHAR(100)
)
insert into Spl values (1, '4334ASTBSTCST')
insert into Spl values (2, '7887ASTBSTCST')
insert into Spl values (3, '8793ASTBSTCST')
davy.ai
Una forma de dividir el valor de una celda única en varias filas duplicando la columna de id y utilizando solo partes del texto original sin usar UNION es utilizar una combinación de CROSS APPLY y la función STRING_SPLIT (si se utiliza SQL Server 2016 o posterior):
Esta consulta dividirá la columna Name por el delimitador ‘C’ y devolverá cada valor de subcadena por separado como una fila independiente con el valor de id correspondiente duplicado para cada fila. En este caso, estamos utilizando la función SUBSTRING para extraer los primeros 4 caracteres del valor de subcadena, pero esto se puede ajustar a cualquier número de caracteres dependiendo de las necesidades específicas.
Tener en cuenta que la condición WHERE se agrega para eliminar cualquier valor de cadena vacía devuelto por la función STRING_SPLIT.