Tôi có thể sử dụng CASE
để chọn cột nào sẽ hiển thị trong SELECT
truy vấn (Postgres), như vậy:
SELECT CASE WHEN val = 0 THEN column_x
WHEN val = 1 THEN column_y
ELSE 0
END AS update, ...
Có một cái gì đó tương tự có thể khi thực hiện một UPDATE
truy vấn trong Postgres (tức là chọn cột nào sẽ được cập nhật)? Tôi giả sử không phải vì tôi không thể tìm thấy bất cứ điều gì về điều này, nhưng có lẽ ai đó có một cách thay thế thông minh (bên cạnh việc sử dụng một quy trình hoặc cập nhật từng cột bằng cách CASE
xác định xem giá trị của cột có nên được gán một giá trị mới hay chỉ đơn giản là gán lại giá trị hiện có giá trị). Nếu không có lựa chọn nào dễ dàng, tất nhiên tôi cũng sẽ chấp nhận đó là câu trả lời.
Thông tin thêm : Trong trường hợp của tôi, tôi có 14 cột tiềm năng có thể được cập nhật, chỉ có một cột được cập nhật trên mỗi hàng khớp (bảng cần cập nhật được nối với một cột khác trong truy vấn). Số lượng hàng để cập nhật rất có thể sẽ khác nhau, có thể là hàng chục hoặc hàng trăm. Tôi tin rằng các chỉ số được đưa ra cho các điều kiện tham gia.