嗨
我添加了一個新欄目「時間」和我想更新該列。我寫了下面的代碼,但沒有工作。以下代碼的問題是什麼?
UPDATE OFFICER
SET HOURS=5 AND HOURS=4 AND HOURS=4 AND HOURS=3
WHERE NAME IN('KASUN','MANEL','LALA');
嗨
我添加了一個新欄目「時間」和我想更新該列。我寫了下面的代碼,但沒有工作。以下代碼的問題是什麼?
UPDATE OFFICER
SET HOURS=5 AND HOURS=4 AND HOURS=4 AND HOURS=3
WHERE NAME IN('KASUN','MANEL','LALA');
如果你只是想正是這些值來填充新列,你可以使用一個UPDATE
有CASE WHEN
,如:
UPDATE OFFICER
SET HOURS = CASE WHEN NAME = 'KASUN' THEN 5
WHEN NAME = 'MANEL' THEN 4
WHEN NAME = 'LALA' THEN 3
END
WHERE NAME IN('KASUN','MANEL','LALA');
;
如果你想填充與行隨機數,你可以只產生這樣一個隨機數:
UPDATE OFFICER
SET HOURS = ABS(Checksum(NewID()) % 6) + 1
WHERE NAME IN('KASUN','MANEL','LALA');
;
的ABS(Checksum(NewID()) % 6) + 1
將產生1和6
你不能在同一時間,你可以爲一個列設置多個值,只需設置一個值,這樣
UPDATE OFFICER SET HOURS = 5
WHERE NAME IN('KASUN','MANEL','LALA');
感謝E-housma Mardini!當我一次添加1列時它就起作用了。謝謝。你知道我們如何一次添加所有列嗎? –
我的朋友你不能設置多個值到同一個字段 –
之間的隨機數你猜怎麼着,我想你可能需要CASE WHEN
:
UPDATE OFFICER
SET HOURS = CASE WHEN NAME = 'KASUN' THEN 5
WHEN NAME = 'MANEL' THEN 4
WHEN NAME = 'LALA' THEN 3
ELSE HOURS
END;
它工作!謝謝。我想我需要更多地使用「CASE」:-D –
如果會有條件意味着您可以根據條件設置多個值,例如:。。。。。。
UPDATE OFFICER SET HOURS = CASE WHEN NAME= 'KASUN' THEN 5
WHEN NAME= 'MANEL' THEN 4
WHEN NAME= 'LALA' THEN 3 END WHERE NAME IN('KASUN','MANEL','LALA');
其他明智的,你可以像如下─
UPDATE OFFICER SET HOURS=5 WHERE NAME='KASUN';
UPDATE OFFICER SET HOURS=4 WHERE NAME ='MANEL';
UPDATE OFFICER AND HOURS=3 WHERE NAME='LALA';
單獨列項你使用MySQL或MS SQL Server?不要標記不涉及的產品。 – jarlh
不要嘗試多次設置相同的列。 – jarlh
你能更好地描述你的更新邏輯嗎? –