sql >> Databáze >  >> RDS >> Sqlserver

Jak aplikovat 3 hodnoty pro 1 řádek na 3 řádky s každou hodnotou?

Neposkytnu vám úplné řešení, ale pokud potřebuji takto rozdělená data, zkusil bych použít sqlxml (musíte to vyzkoušet na velkém počtu řádků, abyste zjistili, zda je pro vás výkon v pořádku):

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)

viz ukázka sql housle zkusit to.




  1. Může SQL Server odeslat webový požadavek?

  2. Spouštěče a zámek tabulky v MySQL

  3. Jak přijímat automatická upozornění na změny v tabulkách?

  4. SQL Server:K čemu jsou dávkové příkazy (tj. pomocí GO) dobré?