you have to specify columns on which you want to join these tables
select
case
when p.rateper <= 0 or p.rateper is null then u.unit1
else p.rateper
end
from units as u
full outer join price as p on p.id = u.???
update I think you need some kind of full outer join. I'm still doesn't completely understand what exactly you want, but try this query:
select
coalesce(u."Unit1", p."id")
from Units as u
full outer join (select * from price where "rate per" > 0) as p on p."id" = u."Unit1";