'RATE:' || nvl(to_char(max(RATE)), 'null') as COLUMNS_AND_MAXVALUES,
nvl(to_char(max(CURRENCY_CODE)), '0') || '+' ||
nvl(to_char(max(RATE)), '0') as MAXVALUES_SEPARATED_BY_PLUSES,
nvl(max(CURRENCY_CODE), 0) + nvl(max(RATE), 0) as SUM_MAXVALUES
from KK_RATE;
Опишем нижеприведенный запрос, решающий задачу.
В подзапросе q1 соберем информацию об имеющихся в текущей схеме полях типа NUMBER, а также конструкции по поиску максимальных значений, которые принимают эти поля.
Затем подставим q1 в запрос для склейки нескольких строк с группировкой. Будем создавать сразу три склеенных поля для каждой таблицы - column_and_max_col_value_list, to_char_max_col_value_0_list, max_col_value_0_list. Результат склейки назовем q2.
В итоговом запросе соберем select-ы по запросу требуемых значений из таблиц и соединим их конструкциями 'union all'.
Итоговый запрос выдает список select-ов, который можно скопировать, выполнить и получить результат.
Стандартный запрос по склейке имеет ограничение в 4000 символов на длину склееной строки, поэтому вполне вероятно, что получившиеся select-ы по суммарной длине превзойдут 4000 символов, поэтому подставлять итоговый запрос в стандартный запрос по склейке не будем.