O Postgres normalmente não usa variáveis em SQL simples. Mas você pode faça isso também:
SET foo.test = 'SELECT bar FROM baz';
SELECT current_setting('foo.test');
Leia sobre as opções personalizadas no manual.
No PostgreSQL 9.1 ou anterior você precisava declarar
custom_variable_classes
antes que você pudesse usar isso. No entanto, você não pode
EXECUTE
SQL dinâmico sem um PL (linguagem procedural). Você usaria um DO
comando para executar instruções ad-hoc (mas você não pode retornar dados dele). Ou use CREATE FUNCTION
para criar uma função que executa SQL dinâmico (e pode retornar dados de qualquer forma imaginável). Certifique-se de proteger contra injeção de SQL ao usar SQL dinâmico.
Relacionado:
- Existe uma maneira de definir uma constante nomeada em uma consulta do PostgreSQL?