Ответ 1
Как указано в документах PostgreSQL здесь:
Выражение SQL CASE представляет собой условное условное выражение, подобное операторам if/else в других языках программирования.
Фрагмент кода, специально отвечающий на ваш вопрос:
SELECT field1, field2,
CASE
WHEN field1>0 THEN field2/field1
ELSE 0
END
AS field3
FROM test