CASE
Bir SELECT
sorguda (Postgres) görüntülemek için hangi sütunları seçmek için kullanabilirsiniz , şöyle:
SELECT CASE WHEN val = 0 THEN column_x
WHEN val = 1 THEN column_y
ELSE 0
END AS update, ...
UPDATE
Postgres'te bir sorgu gerçekleştirirken benzer bir şey mümkün mü (yani hangi sütunların güncellenmesi gerektiğini seçin)? Bu konuda hiçbir şey bulamadığımı sanmıyorum, ama belki birisinin akıllı bir alternatifi vardır (bir prosedürü kullanmanın veya sütunun CASE
değerine yeni bir değer atanıp atanmayacağını belirlemek için her sütunu güncellemenin yanı sıra mevcut olanı yeniden atama değeri). Kolay bir alternatif yoksa, elbette bunu bir cevap olarak kabul edeceğim.
Ek bilgi : Benim durumumda güncellenen 14 potansiyel sütun var, eşleşen satır başına sadece bir güncellenir (güncellenecek tablo sorguda başka bir ile birleştirilir). Güncellenecek satırların miktarı büyük olasılıkla değişir, düzinelerce veya yüzlerce olabilir. Birleştirme koşulları için endekslerin mevcut olduğuna inanıyorum.