Postgresql secara historis tidak mendukung kode prosedural pada tingkat perintah - hanya dalam fungsi. Namun, di Postgresql 9, dukungan telah ditambahkan untuk mengeksekusi blok kode inline yang secara efektif mendukung sesuatu seperti ini, meskipun sintaksnya mungkin agak aneh, dan ada banyak batasan dibandingkan dengan apa yang dapat Anda lakukan dengan SQL Server. Khususnya, blok kode sebaris tidak dapat mengembalikan kumpulan hasil, jadi tidak dapat digunakan untuk apa yang Anda uraikan di atas.
Secara umum, jika Anda ingin menulis beberapa kode prosedural dan mengembalikan hasilnya, Anda harus memasukkannya ke dalam suatu fungsi. Misalnya:
CREATE OR REPLACE FUNCTION somefuncname() RETURNS int LANGUAGE plpgsql AS $$
DECLARE
one int;
two int;
BEGIN
one := 1;
two := 2;
RETURN one + two;
END
$$;
SELECT somefuncname();
Protokol kawat PostgreSQL tidak, sejauh yang saya tahu, mengizinkan hal-hal seperti perintah yang mengembalikan beberapa set hasil. Jadi Anda tidak bisa begitu saja memetakan kumpulan T-SQL atau prosedur tersimpan ke fungsi PostgreSQL.