0
DECLARE @S VARCHAR(MAX) = '1#5;2#;3#4'
DECLARE @x xml = '<r><c>' +
REPLACE(REPLACE(@S, '#','</c><c>'),';','</c></r><r><c>') +
'</c></r>'
SELECT x.value('c[1]','int') AS ParentCategoryID,
x.value('c[2]','int') AS CategoryID
FROM @x.nodes('/r') x(x)
Это дает мне значения, как я хочу, в виде таблицы.Извлечение отдельных значений из XML в SQL Server
Это XML генерируется:
<r>
<c>1</c>
<c>5</c>
</r>
<r>
<c>2</c>
<c />
</r>
<r>
<c>3</c>
<c>4</c>
</r>
Мне нужно извлечь отдельные значения (скажем, во временных переменных), так что я могу использовать их для вставки в таблицах. Спасибо!
Возможно, вы можете использовать курсор для достижения этого? – Milen
Я использую это, вроде как работаю, я думаю. :) SELECT @temp = @ x.value ('(/ r/c) [1]', 'int') – Adi
Я имел в виду наличие курсора для выбора каждой строки в вашем наборе результатов и что-то делать с значениями Row – Milen