你好
我添加了一个新专栏" Hours"我想更新该列。我写了下面的代码但是没有用。以下代码有什么问题?
UPDATE OFFICER
SET HOURS=5 AND HOURS=4 AND HOURS=4 AND HOURS=3
WHERE NAME IN('KASUN','MANEL','LALA');
答案 0 :(得分:3)
如果您只想使用这些值填充新列,则可以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之间的随机数
答案 1 :(得分:1)
猜猜看,我认为您可能需要nomatch = 0L
:
CASE WHEN
答案 2 :(得分:1)
如果有条件意味着您可以根据类似的条件为同一字段设置多个值。
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';
答案 3 :(得分:0)
您无法为一列设置多个值,同时您可以像这样设置一个值
UPDATE OFFICER SET HOURS = 5
WHERE NAME IN('KASUN','MANEL','LALA');