Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / парсинг xml с конкатенацией / 3 сообщений из 3, страница 1 из 1
07.09.2020, 18:15
    #39996305
vdix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
парсинг xml с конкатенацией
Здравствуйте, уважаемые!
Никогда раньше не работал с 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
07.09.2020, 18:41
    #39996312
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
парсинг xml с конкатенацией
Код: 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
08.09.2020, 11:28
    #39996474
vdix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
парсинг xml с конкатенацией
Спасибо огромное!!
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / парсинг xml с конкатенацией / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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