Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да приложа 3 стойности за 1 ред към 3 реда с всяка стойност?

Е, няма да ви дам пълно решение, но ако имам нужда от разделени данни като тези, ще опитам да използвам sqlxml (трябва да го изпробвате на голям брой редове, за да проверите дали производителността е добра за вас):

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)

вижте демонстрация на sql fiddle за да опитате.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL командата INSERT работи, но данните не се показват в таблицата

  2. Съвет за заключване на таблица по подразбиране на SQL Server 2005/2008

  3. Как да вмъкна арабски знаци в SQL база данни?

  4. Забравена парола за SQL Server

  5. Какъв е обхватът на CONTEXT_INFO в SQL Server?