Вы правы, вы не можете изменить временную таблицу. Добавление дополнительного столбца с этим производным значением может быть сделано с помощью оператора CASE
, то есть:
SELECT enroll.ud, enroll.yr, (CASE
WHEN enrollsess.yr_offset <=1 THEN "FA"
ELSE "SP" END)::CHAR(2) AS sess, ...
Приведение (то есть скобки и ::CHAR(2)
), вероятно, не является необходимым.
Если логика может быть выражена как ноль / не ноль (в вашем примере неясно, может ли yr_offset быть отрицательным), то это еще проще:
SELECT enroll.id, enroll.yr,
DECODE(enrollsess.yr_offset, 0, "FA", "SP")::CHAR(2) AS sess, ...
Подробнее о синтаксисе CASE в руководстве