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

Откуда:
Сообщений: 8
В таблице есть поле типа xml, данные в нем имеют следующий вид:
declare @x xml
select @x='
<materials>
	<material>
		<keymaterial>1</keymaterial>
		<quantity>2</quantity>
	</material>
	<material>
		<keymaterial>2</keymaterial>
		<quantity>25</quantity>
	</material>
	<material>
		<keymaterial>3</keymaterial>
		<quantity>45</quantity>
	</material>
</materials>'

требуется получить таблицу вида

material quantity
1 2
2 25
3 45

Каким запросом это сделать?
16 ноя 09, 19:16    [7936156]     Ответить | Цитировать Сообщить модератору
 Re: Выборка нескольких значений из XML  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5499
Блог
А как вы пробовали?

В справке что по OPENXML, что по xquery такие примеры как раз есть.
16 ноя 09, 19:18    [7936163]     Ответить | Цитировать Сообщить модератору
 Re: Выборка нескольких значений из XML  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
select n.value('(keymaterial/text())[1]', 'int') as material
      ,n.value('(quantity/text())[1]', 'int') as quantity
  from @x.nodes('/materials/material') as t(n)

material    quantity
----------- -----------
1           2
2           25
3           45

(3 row(s) affected)
16 ноя 09, 19:19    [7936171]     Ответить | Цитировать Сообщить модератору
 Re: Выборка нескольких значений из XML  [new]
okolobaxa
Member

Откуда:
Сообщений: 8
Спасибо за решение, оказывается я не совсем понял назначение метода nodes() и неправильно его использовал
16 ноя 09, 20:13    [7936342]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить