我有这样的一个表: -更新多行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 update命令??
我有这样的一个表: -更新多行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 update命令??
使用案例表达这样
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')
没有WHERE子句,表中的每一行会进行测试(不必要的,因为他们永远不会匹配)。
UPDATE [TABLE] SET Weight = 501 WHERE [Product ID] = 'A'
GO
UPDATE [TABLE] SET Weight = 601 WHERE [Product ID] = 'B'
GO
UPDATE [TABLE] SET Weight = 701 WHERE [Product ID] = 'C'
GO
UPDATE [TABLE] SET Weight = 801 WHERE [Product ID] = 'D'
GO
UPDATE [TABLE] SET Weight = 401 WHERE [Product ID] = 'E'
GO
这是为单行但我有多行。怎么做 ? – Bob 2010-08-18 09:40:07
加入更多人 – 2010-08-18 09:48:46
更新[TABLE] SET Weight = 501 WHERE [Product ID] ='A' UPDATE [TABLE] SET Weight = 601 WHERE [Product ID] ='B' UPDATE [TABLE] SET Weight = 701 [产品ID] ='C' UPDATE [TABLE] SET Weight = 801 WHERE [Product ID] ='D' UPDATE [TABLE] SET Weight = 401 WHERE [Product ID] ='E' I hv run一次一个。我不能一起执行它们?有没有办法同时运行它们。 – Bob 2010-08-18 09:56:01
嗨, 我试图做一些额外的: - 更新产品集 重量= (CASE的ProductID 当 'a' THEN 501 当'B'然后601 当'C'然后701 当'D'然后801 当'E'然后401 结束) 其中Store ='HHH'和Company ='ABC' 系统提示时显示以下错误消息: - 错误:SQL0199 - 关键字WHERE不是预期的。有效令牌:SET。 (州:37000,本机代码:FFFFFF39) – Bob 2010-08-18 09:36:07
使用什么RDBMS? (SQL SERVER,MySQL,Oracle,PostgreSQL) – gyromonotron 2010-08-18 09:44:21
SQL SERVER ...... – Bob 2010-08-18 09:56:50