Mogę użyć, CASEaby wybrać kolumny do wyświetlenia w SELECTzapytaniu (Postgres), na przykład:
SELECT CASE WHEN val = 0 THEN column_x
WHEN val = 1 THEN column_y
ELSE 0
END AS update, ...
Czy w ogóle jest możliwe coś podobnego podczas wykonywania UPDATEzapytania w Postgres (tj. Wybierz kolumny, które chcesz zaktualizować)? Zakładam, że nie, ponieważ nie mogłem nic na ten temat znaleźć, ale może ktoś ma sprytną alternatywę (oprócz zastosowania procedury lub aktualizacji każdej kolumny za pomocą a, CASEaby ustalić, czy wartość kolumny należy przypisać nową wartość, czy po prostu przypisać istniejącą wartość). Jeśli nie ma łatwej alternatywy, oczywiście zaakceptuję to również jako odpowiedź.
Dodatkowe informacje : w moim przypadku mam 14 potencjalnych kolumn, które można zaktualizować, przy czym tylko jedna jest aktualizowana na pasujący wiersz (tabela do aktualizacji jest połączona z inną w zapytaniu). Liczba wierszy do aktualizacji najprawdopodobniej będzie się różnić, może wynosić dziesiątki lub setki. Uważam, że istnieją indeksy warunków przyłączenia.