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

Откуда:
Сообщений: 1066
Здравствуйте. Нет понимания как разбить xml на части, а именно:
declare @x xml = '<Order ID="9239790" Price="6156.0000" Debt="0.0000">
  <ProductList ID="48098794" Number="5201546532">
    <ProductType Name="Книги">
      <ProductName State="Valid"  Value="Книга 1">
	   <Description Value="Описание 1"/>
      </ProductName>
      <ProductName State="Valid"  Value="Книга 2">
        <Description Value="Описание 2"/>
      </ProductName>
    </ProductType>
     <ProductType Name="Карандаши">
      <ProductName State="Valid"  Value="Карандаш 1">
	   <Description Value="Описание 1"/>
      </ProductName>
      <ProductName State="Valid"  Value="Карандаш 2">
        <Description Value="Описание 2"/>
      </ProductName>
    </ProductType>
  </ProductList>
</Order>'
select c.query('<ProductList>{../@*}{.}</ProductList>') from @x.nodes('Order/ProductList/ProductType') as t(c)


но получаю не то что надо (не хватает данных по Order ), требуется получить две части:

<Order ID="9239790" Price="6156.0000" Debt="0.0000"><ProductList ID="48098794" Number="5201546532">
  <ProductType Name="Книги">
    <ProductName State="Valid" Value="Книга 1">
      <Description Value="Описание 1" />
    </ProductName>
    <ProductName State="Valid" Value="Книга 2">
      <Description Value="Описание 2" />
    </ProductName>
  </ProductType>
</ProductList></Order>

и
<Order ID="9239790" Price="6156.0000" Debt="0.0000"><ProductList ID="48098794" Number="5201546532">
  <ProductType Name="Карандаши">
    <ProductName State="Valid" Value="Карандаш 1">
      <Description Value="Описание 1" />
    </ProductName>
    <ProductName State="Valid" Value="Карандаш 2">
      <Description Value="Описание 2" />
    </ProductName>
  </ProductType>
</ProductList></Order>



Подскажите как правильно.
Спасибо.
29 мар 17, 23:04    [20348943]     Ответить | Цитировать Сообщить модератору
 Re: Как разбить xml на части  [new]
invm
Member

Откуда: Москва
Сообщений: 9646
select c.query('<Order>{../../@*}<ProductList>{../@*}{.}</ProductList></Order>') from @x.nodes('Order/ProductList/ProductType') as t(c)
30 мар 17, 09:31    [20349538]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить