sql >> Database >  >> RDS >> Sqlserver

Hoe pas je 3 waarden voor 1 rij toe op 3 rijen met elke waarde?

Nou, ik zal je geen volledige oplossing geven, maar als ik dergelijke gesplitste gegevens nodig heb, zou ik proberen sqlxml te gebruiken (je moet het op een groot aantal rijen proberen om te controleren of de prestaties goed voor je zijn):

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)

zie sql fiddle-demo om het te proberen.




  1. Waarom kunt u OR of IN niet gebruiken met een OUTER JOIN-bewerking?

  2. Mysql-codering / opslag van gevoelige gegevens,

  3. Aliaskolom gebruiken in WHERE-instructie

  4. Hoe de laatst ingevoegde 3 records te krijgen met de voorwaarde mysql