如何在单个SQL查询中使用两个不同的ID和不同的值更新一列中的两列?
我有一个表如何在单个SQL查询中使用两个不同的ID和不同的值更新一列中的两列?,sql,postgresql,Sql,Postgresql,我有一个表项: id | price ---+-------- 1 | 20000 2 | 30000 3 | 40000 4 | 43000 如何在单个SQL查询中更新价格列id(1)=1000,id(2)=2000?使用案例: update items set price = (case when id = 1 then 1000 when id = 2 then 2000 else price end) where id in (1, 2); 您也可以使用fro
项:
id | price
---+--------
1 | 20000
2 | 30000
3 | 40000
4 | 43000
如何在单个SQL查询中更新价格列id(1)=1000,id(2)=2000?使用案例
:
update items
set price = (case when id = 1 then 1000 when id = 2 then 2000 else price end)
where id in (1, 2);
您也可以使用from
子句编写此代码:
update items
set price = v.price
from (values (1, 1000), (2, 2000)) v(id, price)
where v.id = items.id;
这也有点安全,可以确保ID确实匹配,并且不会意外更新额外的行