Мой клиент использует базу данных db2 без функции listagg, но мне нужно как-то объединить информацию первичного ключа в одном поле.Альтернатива Listagg в db2
Сейчас (для Oracle) Я использую это как часть большего запроса:
SELECT LISTAGG(COLUMN_NAME || ':' || CONTENT, ',')
WITHIN GROUP (ORDER BY COLUMN_NAME || ':' || CONTENT)
FROM TABLE
WHERE ROW_IDENTIFIER_ID = I.REC_ID AND I.TABLE_RESULT_ID = T.REC_ID
Это есть альтернативный способ, чтобы получить результат функции listagg в базе данных DB2 перед DB2, начиная с версии 9.7 Fix Pack 4 1?
версия базы данных моего клиента: Linux - сервер Enterprise Edition 9.7, номер релиза 08060107
Я получил его, выполнив следующие выбирает:
SELECT * FROM TABLE(SYSPROC.ENV_GET_INST_INFO()) AS SYSTEMINFO;
SELECT * FROM TABLE(SYSPROC.ENV_GET_PROD_INFO()) AS SYSTEMINFO;
SELECT * FROM TABLE(SYSPROC.ENV_GET_SYS_INFO()) AS SYSTEMINFO;
Признаюсь, я не понимаю, как это может быть 9.7, но нет функции listagg ?! : Путать:
Я тоже выполнен:.
SELECT * FROM SYSCAT.FUNCTIONS
я вернулся этого function list, но нет функции, таких как xmltext или xmlgroup, указанной в альтернативных решениях вниз в ответах :( база данных Что неандерталец является клиент использует? Или я что-то отсутствует?
Спасибо за ответы.
Смотрите, если [это обходной путь] (https://www.ibm.com/developerworks/mydeveloperworks/blogs/SQLTips4DB2LUW/entry/aggregating_strings42? lang = ru) соответствует вашим потребностям. –
Какой сервер DB2 вы используете: DB2 for i, LUW или z/OS? И какая версия? Различные платформы DB2 имеют разные наборы встроенных функций. – WarrenT
Обновленный вопрос с информацией о версии и списком функций. –