PostgreSQL CASE ... END with multiple conditions PostgreSQL CASE ... END with multiple conditions postgresql postgresql

PostgreSQL CASE ... END with multiple conditions


This kind of code perhaps should work for You

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 modifiedpvcFROM 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)