select case when count = 0 and sum = 0 then 123 else 124 end from users;
INSERT INTO t (user_id, date_pay)
VALUES (123, '2022-09-01 00:00:00')
ON CONFLICT (user_id) DO UPDATE set date_pay = (
SELECT
case when DATE_PART('day', (date_pay::timestamp - now()::timestamp)) <= 0
then date_pay + interval '31 day'
else now() + interval '31 day' end
FROM t
WHERE user_id = 1);
Но как бы это странно подбирать из других бд пока не подойдёт - надо искать в доке оракла. Там я думаю и с примерами будет