У меня есть такая строка:
'1,A;2,B;3,C'
В любом случае можно ли разделить запятые на столбцы, а затем на строки на ;, как показано ниже:
;
ID Text 1 A 2 B 3 C
DECLARE @tags NVARCHAR(400) = '1,A;2,B;3,C' SELECT SUBSTRING(value, 1, CHARINDEX(',',value)-1) AS ID , SUBSTRING(value, CHARINDEX(',',value)+1, LEN(value)) AS TEXT FROM( SELECT value FROM STRING_SPLIT(@tags, ',') WHERE RTRIM(value) <> '' ) A
Попробуйте это:
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