在SQL中更新具有不同值的多个行

Bob*_*Bob 2 sql

我有这样一张桌子: -

Product ID            Weight
A                     100
B                     100
C                     100
D                     100
E                     100 

我想把它改成: -

Product ID            Weight
A                     501
B                     601
C                     701
D                     801
E                     401 

我怎么能用SQL更新命令呢?

小智 8

像这样使用Case表达式

UPDATE products SET
Weight = 
CASE ProductID
   WHEN 'A' THEN 501
   WHEN 'B' THEN 601
   WHEN 'C' THEN 701
   WHEN 'D' THEN 801
   WHEN 'E' THEN 401
END
WHERE ProductID in ('A', 'B', 'C', 'D', 'E')
Run Code Online (Sandbox Code Playgroud)

如果没有WHERE子句,表中的每一行都将被测试(不必要的,因为它们永远不会匹配).

更多信息:CASE(Transact-SQL),Case Oracle,Case MySQL