| Каталог | Индекс раздела |
| Назад | Оглавление | Вперед |
>>-XMLAGG------------------------------------------------------->
>--(--XML-выражение--+---------------------------------------------+--)-><
| .-,-----------------------------. |
| V .-ASC--. | |
'-ORDER BY----| ключ-сортировки |--+------+-+-'
'-DESC-'
Схема - SYSIBM. Имя функции не может быть задано как квалифицированное имя.
Функция XMLAGG возвращает XML-последовательность, содержащую пункт для каждого не-null значения в наборе значений XML.
XML-выражение
Задает выражение типа данных XML.
ORDER BY
Задает порядок строк из того же набора группировки, который обрабатывается в агрегации. Если фраза ORDER BY опущена или фраза ORDER BY не может различить порядок данных в столбце, строки в этом наборе группировки находятся в случайном порядке.
ключ-сортировки
Ключ-сортировки может быть именем столбца или выражением-ключа-сортировки. Заметьте, что если ключ сортировки является константой, он не ссылается на позицию выходного столбца (как в обычной фразе ORDER BY), но это просто константа, которая не предполагает сортировки.
Тип данных результата - XML.
Функция применяется к набору значений, полученному из значений аргументов путем исключения null-значений.
Если аргумент XML-выражения может быть null, результат может быть null. Если набор значений пустой, результат может быть пустым. В противном случае результат является XML-последовательностью, содержащей пункты для каждого значения в наборе.
Примечания:
Пример:
SELECT XMLSERIALIZE(
CONTENT XMLELEMENT(
NAME "Department", XMLATTRIBUTES(
E.WORKDEPT AS "name"
),
XMLAGG(
XMLELEMENT(
NAME "emp", E.LASTNAME
)
ORDER BY E.LASTNAME
)
)
AS CLOB(110)
)
AS "dept_list"
FROM EMPLOYEE E
WHERE E.WORKDEPT IN ('C01','E21')
GROUP BY WORKDEPT
Никакие пробелы или переводы строк не вырабатываются. Следующий результат отформатирован для читабельности.
dept_list -----------------------... <Department name="C01"> <emp>KWAN</emp> <emp>NICHOLLS</emp> <emp>QUINTANA</emp> </Department> <Department name="E21"> <emp>GOUNOT</emp> <emp>LEE</emp> <emp>MEHTA</emp> <emp>SPENSER</emp> </Department>
| Назад | Оглавление | Вперед |
| Каталог | Индекс раздела |