объединение строк из двух разных строк таблицы

StackOverflow https://stackoverflow.com/questions/2494445

  •  21-09-2019
  •  | 
  •  

Вопрос

Мы пытаемся переработать SQL в продукте.Продукт сохраняет XML в таблице следующим образом:

XML_STORAGE
- UID IDENTITY
- PARENT_ID INTEGER
- SEQ INTEGER
- XML VARCHAR(3800)

Текущий способ сделать это следующий:

Получить все ROWS для PARENT_ID = n.Затем просмотрите выбранные строки кода и перед анализом объедините строки XML в один большой XML.Столбец SEQ используется для ПОРЯДКА результата, чтобы строки XML могли быть правильно объединены.Надеюсь, это ясно.

Мы пытаемся переработать это, чтобы мы могли использовать вариант SQL для извлечения всей строки и просто получения одной строки обратно из DB2.Существует ли функция DB2, которая позволит нам объединить строки во всех этих строках в одну большую строку в наборе результатов.Как будет выглядеть такой SQL.Пожалуйста, дайте мне знать.Буду признателен за любую оказанную помощь.

Спасибо!- Азим

Это было полезно?

Решение

Проверьте рекурсивные запросы в DB2, например упомянутые здесь

Другие советы

Да, есть.Запереть XMLELEMENT, XMLAGG, и XMLSERIALIZE.Это должно помочь большинству людей.Пример вы можете увидеть в следующем вопросе Вывод XML-запроса DB2 SQL в уникальный XML-файл.

Редактировать:

Почему бы тебе не сделать что-нибудь вроде select '<tag1>', col1. '</tag1><tag2>', col2, '</tag2>' from table?Если вам нужно объединить все строки в одну, запустите постобработку, чтобы удалить разрывы строк.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top