example - PostgreSQL CASE... END con mĂșltiples condiciones
plpgsql case example (1)
Este tipo de código quizás debería funcionar para usted
SELECT
*,
CASE
WHEN (pvc IS NULL OR pvc = '''') AND (datepose < 1980) THEN ''01''
WHEN (pvc IS NULL OR pvc = '''') AND (datepose >= 1980) THEN ''02''
WHEN (pvc IS NULL OR pvc = '''') AND (datepose IS NULL OR datepose = 0) THEN ''03''
ELSE ''00''
END AS modifiedpvc
FROM my_table;
gid | datepose | pvc | modifiedpvc
-----+----------+-----+-------------
1 | 1961 | 01 | 00
2 | 1949 | | 01
3 | 1990 | 02 | 00
1 | 1981 | | 02
1 | | 03 | 00
1 | | | 03
(6 rows)
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 un
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 fuente, no ha pasado nada y no recibo ningún mensaje de error en los archivos pg_log. Puede ser un error de sintaxis o un problema con el uso de múltiples condiciones dentro de las cláusulas WHEN?
Gracias por la ayuda y consejos!