В MS SQL принято писать в процедурном стиле, в том числе используя переменные.
Вы можете использовать процедурные расширения PostgreSQL, как отметил выше
Сергей Горностаев, в функциях.
У pgAdminIII есть своё процедурное расширение
pgScript. Обратите внимание на то, что скрипты на pgScript будут работать только из-под pgAdminIII.
На чистом SQL, без использования переменных, ваш запрос будет выглядеть примерно так:
with rec as (
select "recordId" as rec_id
from catalog_49_links
where "catalogId" = 36 and "catalogRecordId" = 352
order by "createdAt" desc
limit 1
)
select "recordId" as new_rec_id from catalog_49_links where "recordId" in (select rec_id from rec) and "catalogId" = 56 or ("catalogId" = 36 and "catalogRecordId" = 352) order by "createdAt" desc limit 1;
или
with rec as (
select "recordId" as rec_id
from catalog_49_links
where "catalogId" = 36 and "catalogRecordId" = 352
order by "createdAt" desc
limit 1
)
select "recordId" as new_rec_id
from catalog_49_links
join rec on rec.rec_id = catalog_49_links."recordId"
where "catalogId" = 56 or ("catalogId" = 36 and "catalogRecordId" = 352)
order by "createdAt" desc limit 1;