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

Откуда:
Сообщений: 19
Здравия всем!

помогите разобраться

делаю такой запрос

SELECT node.value('.','nvarchar(255)')as GoodsDescription
FROM @gtd.nodes('(/*:Envelope/*:Body/*:InfoDT/*:GoodsShipment/*:DTGoods/*:GoodsDescription)') as T(node)

получаю в виде датасета одно из полей которое есть в xml
но там их несколько,
как нужно написать запрос, чтобы получить полный датасет с полями

а не обращаться к каждому отдельным запросом
6 июн 14, 13:42    [16132279]     Ответить | Цитировать Сообщить модератору
 Re: Данные из XQuery в виде таблички  [new]
invm
Member

Откуда: Москва
Сообщений: 9646
SELECT
 node.value('*:Field1[1]','nvarchar(255)'),
 node.value('*:Field2[1]','nvarchar(255)'),
 ...
 node.value('*:FieldN[1]','nvarchar(255)')
FROM @gtd.nodes('(/*:Envelope/*:Body/*:InfoDT/*:GoodsShipment/*:DTGoods)') as T(node)
6 июн 14, 13:50    [16132362]     Ответить | Цитировать Сообщить модератору
 Re: Данные из XQuery в виде таблички  [new]
Kill_Maker
Member

Откуда:
Сообщений: 19
invm
SELECT
 node.value('*:Field1[1]','nvarchar(255)'),
 node.value('*:Field2[1]','nvarchar(255)'),
 ...
 node.value('*:FieldN[1]','nvarchar(255)')
FROM @gtd.nodes('(/*:Envelope/*:Body/*:InfoDT/*:GoodsShipment/*:DTGoods)') as T(node)


Field1, Field2 - подставлять имя тега или так и писать??

вроде и так и так пробую, возвращает только null'ы в полях, но количество записей выводит полное
6 июн 14, 13:56    [16132426]     Ответить | Цитировать Сообщить модератору
 Re: Данные из XQuery в виде таблички  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4805
Пример XML покажите. Вы с XPATH хорошо в ладах? Что-то за странный синтаксис.
6 июн 14, 14:03    [16132509]     Ответить | Цитировать Сообщить модератору
 Re: Данные из XQuery в виде таблички  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4805
У вас там наверное namespaces всё обвешано, их надо в запросе прописывать. WITH XMLNAMESPACES конструкцию посмотрите
6 июн 14, 14:05    [16132530]     Ответить | Цитировать Сообщить модератору
 Re: Данные из XQuery в виде таблички  [new]
invm
Member

Откуда: Москва
Сообщений: 9646
declare @x xml = N'<n:r xmlns:n = "aaa"><n:v1>1</n:v1><n:v2>2</n:v2></n:r>';

select
 n.value('*:v1[1]', 'int'),
 n.value('*:v2[1]', 'int')
from
 @x.nodes('/*:r') t(n);
6 июн 14, 14:09    [16132566]     Ответить | Цитировать Сообщить модератору
 Re: Данные из XQuery в виде таблички  [new]
Kill_Maker
Member

Откуда:
Сообщений: 19
благодарю
6 июн 14, 14:16    [16132614]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить