Наилучшим подходом является табличный метод.
CREATE FUNCTION fruit_basket(apples) RETURNS text LANGUAGE SQL AS $$
CASE WHEN $1.fruits = 'Macintosh' THEN 'Green' END; $$;
Тогда вы можете использовать это как столбец, за исключением того, что вы должны его квалифицировать, поскольку поддерживается синтаксис class.method.
SELECT CASE WHEN a.fruit_basket = 'Green' THEN 'Awesome' end as is_it_good
FROM apples a;
Обратите внимание, что это превращает a.fruit_basket в fruit_basket (a), поэтому вы не можете опустить a.before fruit_basket.
Обратите внимание, что это будет хорошо работать, так как работает с кортежем из таблицы и не попадает прямо в таблицу.Он может быть встроен в качестве макроса SQL планировщиком.