Saya dapat menggunakan CASE
untuk memilih kolom mana yang akan ditampilkan dalam SELECT
kueri (Postgres), seperti:
SELECT CASE WHEN val = 0 THEN column_x
WHEN val = 1 THEN column_y
ELSE 0
END AS update, ...
Apakah mungkin ada yang serupa ketika melakukan UPDATE
kueri di Postgres (yaitu memilih kolom mana yang harus diperbarui)? Saya berasumsi tidak karena saya tidak dapat menemukan apa pun tentang ini, tetapi mungkin seseorang memiliki alternatif yang cerdas (selain menggunakan prosedur atau memperbarui setiap kolom menggunakan a CASE
untuk menentukan apakah nilai kolom harus diberi nilai baru atau hanya menetapkan kembali yang sudah ada nilai). Jika tidak ada alternatif yang mudah, tentu saja saya akan menerimanya sebagai jawaban juga.
Info tambahan : Dalam kasus saya, saya memiliki 14 kolom potensial yang dapat diperbarui, dengan hanya satu yang diperbarui per baris yang cocok (tabel yang akan diperbarui bergabung dengan yang lain dalam kueri). Jumlah baris yang akan diperbarui kemungkinan besar akan bervariasi, bisa puluhan atau ratusan. Saya percaya indeks sudah siap untuk kondisi bergabung.