Как добавить нумерацию страниц в результат запроса XMLAGG в Oracle? - PullRequest
0 голосов
/ 03 мая 2018

У меня есть SQL-запрос, возвращающий данные XML, подобный следующему примеру:

SELECT XMLELEMENT("Columns", 
  XMLAGG(XMLELEMENT("Column", CNAME) ORDER BY CNAME)) AS DATA
FROM Col

Теперь я хотел бы добавить поддержку пагинации в этот запрос. Поскольку функция XMLAGG объединяет все элементы в один результат XML, стандартный подход «WHERE ROWNUM <100» не будет работать. </p>

Как добавить нумерацию страниц в запросы SQL Oracle, содержащие XMLAGG?

1 Ответ

0 голосов
/ 03 мая 2018

Разбейте на подзапрос, а затем выполните агрегирование во внешнем запросе:

SELECT XMLELEMENT("Columns", 
       XMLAGG(XMLELEMENT("Column", CNAME) ORDER BY CNAME)) AS DATA
FROM   (
  SELECT CNAME
  FROM   Col
  ORDER BY CNAME
  OFFSET 0 ROWS
  FETCH NEXT 100 ROWS ONLY
);
...