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 CASE
como 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
NULL
por ejemploRespuestas:
Este tipo de código quizás debería funcionar para usted
fuente
ELSE '00'
conELSE pvc
para poder mantener los valores existentes en lapvc
columna, de lo contrario, se rayan con '00' (casopvc IS NOT NULL
). ¡Muchas gracias!