Ecco un estratto del mio tavolo:PostgreSQL CASE ... END con condizioni multiple
gid | datepose | pvc
---------+----------------+------------
1 | 1961 | 01
2 | 1949 |
3 | 1990 | 02
1 | 1981 |
1 | | 03
1 | |
voglio riempire la colonna di PVC con un SELECT CASE
come muggito:
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 ;
Il risultato è lo stesso contenuto della tabella di origine, non è successo nulla e non ricevo messaggi di errore nei file pg_log. Potrebbe essere un errore di sintassi o un problema con l'utilizzo di più condizioni all'interno delle clausole WHEN?
Grazie per l'aiuto e il consiglio!
Si può visualizzare un valore NULL in cui è nullo (in modo che possiamo vedere la differenza tra NULL e stringa vuota)? Come in, una stringa contenente 'NULL' ad esempio – Paco
Hai anche un problema con parentesi. Perché c'è una parentesi chiusa dopo il 1980? (in entrambi i posti) – Paco