我有這樣的一個表: -更新多行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