Estou tentando declarar uma variável para uso posterior em uma consulta PostgreSQL. Já fiz isso muitas vezes no TSQL, mas não tinha certeza sobre a sintaxe.
As coisas que vi online apontam para algo assim:
declare timestamp_utc timestamp := current_timestamp;
select start_date;
quando executo a consulta acima, recebo uma mensagem de erro:
Tenho certeza de que isso é simples, mas simplesmente não consigo encontrar a resposta online. Qualquer ajuda que você possa fornecer será muito apreciada.
Não há variáveis no SQL simples.
Você pode usar "opções personalizadas" como solução alternativa limitada. Ver:
Linguagens procedurais do lado do servidor, como PL/pgSQL, possuem variáveis. Você pode usar
DECLARE
em um bloco de código - em funções, procedimentos e em blocos de código anônimos executados com oDO
comando. PL/pgSQL é o PL padrão para este último. Ver:Ou você pode definir variáveis no cliente, como o terminal de linha de comando padrão psql . Ver:
Relacionado:
Como Erwin apontou, você não pode declarar variáveis no Vanilla PostgreSQL. A maneira como contornei isso foi declarando uma tabela temporária e inserindo os valores necessários nela.
É muito mais código, mas lida com o caso de uso com o qual estou trabalhando.