Mogę użyć, CASE
aby wybrać kolumny do wyświetlenia w SELECT
zapytaniu (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 UPDATE
zapytania 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, CASE
aby 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.