В DB2 LuW я выполняю следующий запрос
db2 => select 'a', 'b' from sysibm.dual
1 2
- -
a b
1 record(s) selected.
Обратите внимание, что сгенерированные "имена столбцов" являются индексами столбцов, начинающимися с 1. Теперь, если у меня есть такой запрос как производная таблица, я не могу просто ссылаться на имена столбцов по их индексу следующим образом:
db2 => select t."1", t."2" from (select 'a', 'b' from sysibm.dual) t
SQL0206N "T.1" is not valid in the context where it is used. SQLSTATE=42703
Несмотря на то, что псевдонимы числовых столбцов возможны, это работает:
db2 => select t."1", t."2" from (select 'a' as "1", 'b' as "2" from sysibm.dual) t
1 2
- -
a b
1 record(s) selected.
Или, используя списки производных столбцов:
select t."1", t."2" from (
select 'a', 'b' from sysibm.dual
) t("1", "2")
Можно ли ссылаться на сгенерированные имена / индексы столбцов, не изменяя исходный запрос и не заключая его в производную таблицу (что может иметь побочные эффекты, такие как потеря порядка)?
Обратите внимание, что исходный запрос может не находиться под моим контролем, поскольку это обеспечивается какой-то другой логикой. Например, в контексте jOOQ