Преобразование значения столбца, разделенного запятыми, в строки
У меня есть таблица Образец с данными, хранящимися, как показано ниже
Id | String
--------------
1 abc,def,ghi
2 jkl,mno,pqr
Мне нужен вывод типа..
Id | processedrows
--------------
1 abc
1 def
1 ghi
2 jkl
2 mno
2 pqr
Как я могу сделать то же самое с запросом select в SQL Server?
4 ответа:
Попробуйте это
SELECT A.[id], Split.a.value('.', 'VARCHAR(100)') AS String FROM (SELECT [id], CAST ('<M>' + REPLACE([string], ',', '</M><M>') + '</M>' AS XML) AS String FROM TableA) AS A CROSS APPLY String.nodes ('/M') AS Split(a);
См. здесь
Http://www.sqljason.com/2010/05/converting-single-comma-separated-row.html
Попробуйте с этим. Вы получите свой результат.
SELECT id, PARSENAME(REPLACE(Split.a.value('.', 'VARCHAR(100)'),'-','.'),1) 'Values' FROM ( SELECT algorithms, CAST ('<M>' + REPLACE(string, ',', '</M><M>') + '</M>' AS XML) AS Data FROM <TableName> ) AS A CROSS APPLY Data.nodes ('/M') AS Split(a)