como escrever uma expressão case com o Postgres? eu tenho isto
case
when rc.stat = 0 Then unpaid
when rc.stat = 1 Then paid
when rc.stat = 2 Then dispute
else rc.stat
end
mas quando vou executar a declaração recebo um erro de
Error: column "unpaid" does not exist
Eu também tentei aspas duplas e colchetes em torno dos valores de texto, mas todas essas opções me dão erros. Apenas para observar, os valores não pagos, pagos, contestados NÃO são campos no banco de dados, mas valores de texto que quero escrever.
Você precisa de uma constante de string lá, por exemplo
'unpaid'
.Como todos os ramos de uma expressão CASE devem retornar o mesmo tipo de dados, você também precisará converter a
stat
coluna paratext
(supondo que seja algum tipo de número ao compará-lo com um)Como você usa apenas
=
como operador de comparação, você pode simplificar essa expressão para: