sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo aplicar 3 valores para 1 fila a 3 filas con cada valor?

Bueno, no te daré una solución completa, pero si necesito dividir datos como este, intentaría usar sqlxml (debe probarlo en una gran cantidad de filas para verificar si el rendimiento es bueno para usted):

declare @x table (prm int,iin varchar(20))

insert into @x values(1, 'A/B/C')
insert into @x values(3, 'D')
insert into @x values(2, 'R/G')

select
    x.prm, x.iin, T.C.value('.', 'nvarchar(max)') as oout
from @x as x
    outer apply (
        select cast('<d>' + replace(x.iin, '/', '</d><d>') + '</d>' as xml) as Data
    ) as D
    outer apply D.Data.nodes('d') as T(C)

ver sql fiddle demo para probarlo.