powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / парсинг xml с конкатенацией
3 сообщений из 3, страница 1 из 1
парсинг xml с конкатенацией
    #39996305
vdix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, уважаемые!
Никогда раньше не работал с XML данными через MS SQL Server, не могли бы вы помочь с созданием запроса? Данные хранятся в табличке в таком примерно виде:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
declare @tblTest table (XmlData varchar(max));

insert into @tblTest values (
'<Document>'+
'  <Data>'+
'    <Name>Value 1</Name>'+
'  </Data>'+
'  <Data>'+
'    <Name>Value 2</Name>'+
'  </Data>'+
'</Document>');

insert into @tblTest values (
'<Document>'+
'  <Data>'+
'    <Name>Value 3</Name>'+
'  </Data>'+
'</Document>');



Как бы это правильно заселектить, чтобы на выходе получить 2 строки (т.е. в каждом XML конкатенировать текст всех нод \Document\Data\Name):
авторValue 1,Value 2

Value 3
...
Рейтинг: 0 / 0
парсинг xml с конкатенацией
    #39996312
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
declare @tblTest table (XmlData varchar(max));

insert into @tblTest values (
'<Document>'+
'  <Data>'+
'    <Name>Value 1</Name>'+
'  </Data>'+
'  <Data>'+
'    <Name>Value 2</Name>'+
'  </Data>'+
'</Document>');

insert into @tblTest values (
'<Document>'+
'  <Data>'+
'    <Name>Value 3</Name>'+
'  </Data>'+
'</Document>');

select
 stuff(cast(XmlData as xml).query('for $v in /Document/Data/Name return concat(", ", $v/text()[1])').value('.', 'varchar(max)'), 1, 2, '')
from
 @tblTest;

select
 string_agg(b.n.value('Name[1]', 'varchar(100)'), ', ')
from
 @tblTest t cross apply
 (select cast(XmlData as xml)) a(x) cross apply
 a.x.nodes('/Document/Data') b(n)
group by
 t.XmlData;
...
Рейтинг: 0 / 0
парсинг xml с конкатенацией
    #39996474
vdix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо огромное!!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / парсинг xml с конкатенацией
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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