Sql 带where子句的多重集合

Sql 带where子句的多重集合,sql,sql-server,where,Sql,Sql Server,Where,我想使用set和where更新一列的值 我这样问 update Students set Studentid =case when Studentid=1 then class= 10 when studentid = 3 then class=9 when studentid=2 and studentid =4 then class=8 End 但我想这是行不通的。请帮帮我。我想这就是你想说的: UPDATE Students SET class = CASE WHEN Stude

我想使用set和where更新一列的值

我这样问

update Students set Studentid =case 
when Studentid=1  then class= 10 
when studentid = 3 then class=9
when studentid=2 and studentid =4 then class=8 
End

但我想这是行不通的。请帮帮我。

我想这就是你想说的:

UPDATE Students
SET class = CASE WHEN Studentid = 1       THEN 10
                 WHEN Studentid = 3       THEN 9
                 WHEN Studentid IN (2, 4) THEN 8 END
WHERE Studentid IN (1, 2, 3, 4);

我添加了一个
WHERE
子句,以确保我们只接触实际上会受更新逻辑影响的记录。

我想这就是您想要说的:

UPDATE Students
SET class = CASE WHEN Studentid = 1       THEN 10
                 WHEN Studentid = 3       THEN 9
                 WHEN Studentid IN (2, 4) THEN 8 END
WHERE Studentid IN (1, 2, 3, 4);

我添加了一个
WHERE
子句,以确保我们只接触实际受更新逻辑影响的记录。

您能描述一下您希望通过上述查询实现什么吗?查询看起来无论如何都不正确。那么是
studentid
还是
class
yopu想要更改?您认为任何记录都会符合条件
studentid=2和studentid=4
?记录的
studentid
可以是2或4(或另一个值),而不是同时为2和4。因此:
studentid=2或studentid=4
。您能描述一下您希望通过上述查询实现什么吗?查询看起来无论如何都不正确。那么是
studentid
还是
class
yopu想要更改?您认为任何记录都会符合条件
studentid=2和studentid=4
?记录的
studentid
可以是2或4(或另一个值),而不是同时为2和4。因此:
studentid=2或studentid=4
。这是完美的。谢谢你这太好了。非常感谢。