Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak zastosować 3 wartości dla 1 wiersza do 3 wierszy z każdą wartością?

Cóż, nie dam ci pełnego rozwiązania, ale jeśli potrzebuję podzielonych danych w ten sposób, spróbuję użyć sqlxml (musisz wypróbować to na dużej liczbie wierszy, aby sprawdzić, czy wydajność jest dla Ciebie odpowiednia):

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)

zobacz demonstracja skrzypiec sql spróbować.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zobacz historię zadań agenta SQL Server za pomocą programu SSMS

  2. SQL Server ROWLOCK nad SELECT, jeśli nie istnieje INSERT transakcja

  3. Utwórz schemat UDF związany ze schematem w SQL Server

  4. Jak mogę uzyskać rekordy o wartości NULL z tabeli?

  5. Zapisz plik w bazie danych SQL Server 2008 za pomocą Entity Framework