Bạn cũng có thể sử dụng update ... from
cú pháp và sử dụng một bảng ánh xạ. Nếu bạn muốn cập nhật nhiều hơn một cột, nó có thể khái quát hơn nhiều:
update test as t set
column_a = c.column_a
from (values
('123', 1),
('345', 2)
) as c(column_b, column_a)
where c.column_b = t.column_b;
Bạn có thể thêm bao nhiêu cột tùy thích:
update test as t set
column_a = c.column_a,
column_c = c.column_c
from (values
('123', 1, '---'),
('345', 2, '+++')
) as c(column_b, column_a, column_c)
where c.column_b = t.column_b;
sql fiddle demo