powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Объединение с помощью Xquery нескольких записей в строку
8 сообщений из 8, страница 1 из 1
Объединение с помощью Xquery нескольких записей в строку
    #39503063
admontes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Есть собственно следующий запрос:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
select e.first, e.last, p.phone  
from XMLTABLE('/employee'   
              PASSING XMLTYPE('  
                                  <employee>  
                                      <first>Илья</first>  
                                      <last>Муромец</last>  
                                      <office>хижина</office>  
                                      <phone>02</phone>  
                                      <phone>911</phone>  
                                  </employee>  
                              ')     
              COLUMNS  
                      first     VARCHAR2(25) PATH 'first',  
                      last      VARCHAR2(25) PATH 'last',  
                      phone_xml XMLTYPE      PATH 'phone'
                      ) AS e,  
     XMLTable('/phone'  
              PASSING e.phone_xml  
              COLUMNS  
                      phone     VARCHAR2(12) PATH '.') AS p;  



Результатом будет не нормализованный вывод из 2-х строк, с повторяющимися значениями полями: first, last и разным значением в поле phone.
Подскажите, можно ли с помощью, всей мощи Oracle и XQuery, вывести данные одной строчкой с объединением значений поля phone?
...
Рейтинг: 0 / 0
Объединение с помощью Xquery нескольких записей в строку
    #39503073
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
admontes,

group by + listagg?
...
Рейтинг: 0 / 0
Объединение с помощью Xquery нескольких записей в строку
    #39503081
admontes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

Да это сработает, спасибо, но хотелось бы более кошерный вариант, не выпадая из контекста XQuery. ))
...
Рейтинг: 0 / 0
Объединение с помощью Xquery нескольких записей в строку
    #39503096
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
admontes,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
select e.* 
from XMLTABLE('for $i in /employee 
                 let $j := $i/phone
               return <r>{$i/first}{$i/last}<phones>{string-join($j,",")}</phones></r>'
              PASSING XMLTYPE('  
                                  <employee>  
                                      <first>Илья</first>  
                                      <last>Муромец</last>  
                                      <office>хижина</office>  
                                      <phone>02</phone>  
                                      <phone>911</phone>  
                                  </employee>  
                              ')     
              COLUMNS  
                      first     VARCHAR2(25)  PATH 'first',  
                      last      VARCHAR2(25)  PATH 'last',  
                      phone_xml VARCHAR2(100) PATH 'phones'
                      ) AS e;  



FLOWR
...
Рейтинг: 0 / 0
Объединение с помощью Xquery нескольких записей в строку
    #39503097
Азагаш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
admontes,
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
select e.first, e.last, e.phone_str  
from XMLTABLE('/employee'   
              PASSING XMLTYPE('  
                                  <employee>  
                                      <first>Илья</first>  
                                      <last>Муромец</last>  
                                      <office>хижина</office>  
                                      <phone>02</phone>  
                                      <phone>911</phone>  
                                  </employee>  
                              ')     
              COLUMNS  
                      first     VARCHAR2(25) PATH 'first',  
                      last      VARCHAR2(25) PATH 'last',  
                      phone_str VARCHAR2(25) path 'string-join(phone,", ")') AS e
...
Рейтинг: 0 / 0
Объединение с помощью Xquery нескольких записей в строку
    #39503100
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
admontes,

Ссылку забыл

FLOWR
...
Рейтинг: 0 / 0
Объединение с помощью Xquery нескольких записей в строку
    #39503102
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Азагаш,

Да, согласен, так покороче будет.
...
Рейтинг: 0 / 0
Объединение с помощью Xquery нескольких записей в строку
    #39503135
admontes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Азагаш, Env

Ребята, спасибо! С меня пиво!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Объединение с помощью Xquery нескольких записей в строку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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