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

разделяне на низ, разделен със запетая, на колони

Опитайте това:

declare @s varchar(50) = '1,A;2,B;3,C'
--convert string to xml table (I used HTML tags for clarity)
declare @xml xml = cast('<tr><td>' + replace(replace(@s, ';', '</td></tr><tr><td>'), ',', '</td><td>') + '</td></tr>' as xml)
--query the xml to get SQL table
select tbl.col.value('td[1]', 'int') [ID],
       tbl.col.value('td[2]', 'varchar(10)') [Text]
from @xml.nodes('/tr') tbl(col)

За повече информация:Конвертиране на Xml в таблица SQL Server



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

  2. Не мога да се свържа с SQL Server 2005 localhost

  3. Проверете дали съществува временна таблица и изтрийте дали съществува, преди да създадете временна таблица

  4. Сортирайте данните преди конкатенация с помощта на STUFF FOR XML

  5. Предоставяне на потребителски достъп на msdb до пощенски профил на база данни в SQL Server (T-SQL)