2013-07-16 2 views
3

Я довольно новичок в SQL и придерживался очень распространенного сценария. У меня есть XML с вложенным ребенком в качестве входного параметра в моей хранимой процедуреКак получить все значения из xml в SQL

<XML> 
    <Id>1</Id> 
    <Age>1</Age> 
    <Address>Test</Address> 
    . 
    . 
    <Days> 
     <long>1</long> 
     <long>2</long> 
     <long>3</long> 
     <long>7</long> 
    </Days> 
    </XML> 

Я могу выбрать данные внутри XML-тега через

Id = t.Xml.value('(./Id)[last()]','int')

, но я понятия не имею, как выбрать все давно значения внутри XML/Days. Я пробовал

long = t.UserXml.value('.','int') 

и он возвращает все значения как 1237, но это не решает мою проблему. Мне нужны значения в разных строках, и длинные значения нужно вставлять в другую таблицу.

Пожалуйста, дайте мне знать возможные решения для них. Благодаря

ответ

1

решение в течение нескольких дней SQLServer может быть

DECLARE @XML XML 
SET @XML='<XML> 
    <Id>1</Id> 
    <Age>1</Age> 
    <Address>Test</Address> 
    <Days> 
     <long>1</long> 
     <long>2</long> 
     <long>3</long> 
     <long>7</long> 
    </Days> 
    </XML>' 

SELECT 
    x.y.value('text()[1]', 'int') as xx 
FROM @xml.nodes('XML/Days/long') x(y) 
Смежные вопросы