powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Перебор вложенных секций (MSSQL+XML)
3 сообщений из 3, страница 1 из 1
Перебор вложенных секций (MSSQL+XML)
    #39390343
f50
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, подскажите, как перебрать вложенные секции. Сейчас читается только первая встретившаяся секция.
Если сделать новым запросом, с указанием нового "корня" в параметрах OPENXML, то тоже нет проблем... Просто под каждую секцию писать таблицу для хранения не хочется. Т.е. в моем случае, пусть Иванов дублируется 3 раза не проблема.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
begin
DECLARE @orders xml =
'<Orders>
 <Order>
  <Customer>Василий</Customer>
 </Order>
 <Order>
  <Customer>Петров</Customer>
 </Order>
 <Order>
  <Customer>Иванов</Customer>
  <dopparam>
	<idval>102</idval>
	<val>Сантехник</val>
  </dopparam>
  <dopparam>
	<idval>103</idval>
	<val>Водитель</val>
  </dopparam>
  <dopparam>
	<idval>104</idval>
	<val>Домохозяин</val>
  </dopparam>
 </Order>
</Orders>';

DECLARE @docHandle int;
EXECUTE sp_xml_preparedocument @docHandle OUTPUT, @orders
SELECT * FROM OPENXML(@docHandle, N'/Orders/Order')
  WITH
  (
    Customer nvarchar(128) 'Customer',
	idval int 'dopparam/idval',
	val nvarchar(50) 'dopparam/val'
  )
EXECUTE sp_xml_removedocument @docHandle;
end
GO



Сейчас так:
CustomeridvalvalВасилийNULLNULLПетровNULLNULLИванов102 Сантехник

Хотелось бы так:
CustomeridvalvalВасилийNULLNULLПетровNULLNULLИванов102 СантехникИванов103ВодительИванов104 Домохозяин

Заранее благодарю!
...
Рейтинг: 0 / 0
Перебор вложенных секций (MSSQL+XML)
    #39391062
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно делать два селекта - /Orders/Order и /Orders/Order/dopparam и джойнить их по Customer.

или /Orders/Order/Customer и /Orders/Order/dopparam
...
Рейтинг: 0 / 0
Перебор вложенных секций (MSSQL+XML)
    #39391552
f50
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy, спасибо, понял!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Перебор вложенных секций (MSSQL+XML)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]