Aqui está um extrato da minha tabela:
gid | datepose | pvc
---------+----------------+------------
1 | 1961 | 01
2 | 1949 |
3 | 1990 | 02
1 | 1981 |
1 | | 03
1 | |
Quero preencher a coluna de PVC usando um SELECT CASE
como abaixo:
SELECT
gid,
CASE
WHEN (pvc IS NULL OR pvc = '') AND datpose < 1980) THEN '01'
WHEN (pvc IS NULL OR pvc = '') AND datpose >= 1980) THEN '02'
WHEN (pvc IS NULL OR pvc = '') AND (datpose IS NULL OR datpose = 0) THEN '03'
END AS pvc
FROM my_table ;
O resultado é o mesmo conteúdo da tabela de origem, nada aconteceu e não recebo nenhuma mensagem de erro nos arquivos pg_log. Pode ser um erro de sintaxe ou um problema com o uso de várias condições nas cláusulas WHEN?
Obrigado pela ajuda e conselhos!
Você também tem um problema com colchetes. Por que há um colchete de fechamento após 1980? (em ambos os lugares)
—
Paco
NULL
por exemplo