Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Парсинг xml  [new]
Серый ник без пароля
Guest
Добрый вечер!
Просьба сильно ногами не бить.

Есть следующий вопрос.

Как из такой xml
 DECLARE @x xml 
SET @x='<root>
		 <row>
		 <clientId> 1 </clientId>
		 <orderId> 2 </orderId>
		 </row>
		  <row>
		 <clientId> 3 </clientId>
		 <orderId> 4 </orderId>
		 </row>
		 </root>'

получить следующий результат:
select 1 as clientId , 2 as orderId
Union all
select 3 as clientId , 4 as orderId
?

Поиском нашел следующий магический оператор
SELECT T.c.query('.') AS result
FROM   @x.nodes('/root/row') T(c)

А вот что дальше сделать, что то не соображу. Можно тупо через
 replace /  substring 
выдернуть необходимые поля, но может существует красивое решение?
Спасибо.
23 июл 13, 20:03    [14606520]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг xml  [new]
так можна
Guest
Серый ник без пароля,

SELECT 
	 T.c.value('clientId[1]/text()[1]', 'int') AS clientId
	,T.c.value('orderId[1]/text()[1]', 'int') AS orderId
FROM   @x.nodes('/root/row') T(c)
23 июл 13, 20:09    [14606543]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг xml  [new]
Серый ник без пароля
Guest
так можна,

Спасибо :) Работает.
24 июл 13, 10:42    [14608790]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить