Berikut ini ekstrak tabel saya:
gid | datepose | pvc
---------+----------------+------------
1 | 1961 | 01
2 | 1949 |
3 | 1990 | 02
1 | 1981 |
1 | | 03
1 | |
Saya ingin mengisi kolom PVC menggunakan a SELECT CASE
seperti di bawah ini:
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 ;
Hasilnya adalah konten yang sama dengan tabel sumber, tidak ada yang terjadi dan saya tidak mendapatkan pesan kesalahan di file pg_log. Ini mungkin kesalahan sintaks, atau masalah dengan menggunakan beberapa kondisi dalam klausa WHEN?
Terima kasih atas bantuan dan sarannya!
postgresql
case
wiltomap
sumber
sumber
NULL
misalnyaJawaban:
Kode semacam ini mungkin cocok untuk Anda
sumber
ELSE '00'
denganELSE pvc
sehingga saya dapat menyimpan nilai yang ada dipvc
kolom, jika tidak mereka akan tergores dengan '00' (casepvc IS NOT NULL
). Terima kasih banyak!