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!
postgresql
case
Wiltomap
fonte
fonte
NULL
por exemploRespostas:
Este tipo de código talvez deva funcionar para você
fonte
ELSE '00'
porELSE pvc
para manter os valores existentes napvc
coluna, caso contrário, eles serão riscados com '00' (maiúsculas e minúsculaspvc IS NOT NULL
). Muito obrigado!