Aquí hay un extracto de mi tabla:
gid | datepose | pvc
---------+----------------+------------
1 | 1961 | 01
2 | 1949 |
3 | 1990 | 02
1 | 1981 |
1 | | 03
1 | |
Quiero llenar la columna de PVC usando SELECT CASEcomo se muestra a continuación:
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 ;
El resultado es el mismo contenido que la tabla de origen, no ha sucedido nada y no recibo ningún mensaje de error en los archivos pg_log. ¿Podría ser un error de sintaxis o un problema con el uso de múltiples condiciones dentro de las cláusulas WHEN?
¡Gracias por tu ayuda y consejo!
postgresql
case
wiltomap
fuente
fuente

NULLpor ejemploRespuestas:
Este tipo de código quizás debería funcionar para usted
fuente
ELSE '00'conELSE pvcpara poder mantener los valores existentes en lapvccolumna, de lo contrario, se rayan con '00' (casopvc IS NOT NULL). ¡Muchas gracias!