用不同的条件更新 table

update table with différents conditions

我想根据两个条件更新我的学生 table(列:Id、姓名、年龄 UpdatedDate):

@id = 10
UPDATE Student SET Id = @id, UpdatedDate = GETDATE() WHERE Name = "David"
IF age is NULL AND @id = 10 UPDATE Student SET Id = @id, UpdatedDate = GETDATE(), age = 22 WHERE Name = "David"

请问我怎样才能以更优化的方式进行此更新? 这两个更新是相似的,除了我们只在条件被验证时更新的列的不同 谢谢

你可以尝试UPDATE通过CASE WHEN表达式,使你的期望条件然后return结果为UPDATE,否则使用ELSE中的原始值什么都不做。

UPDATE Student 
SET Id = @id, 
    UpdatedDate = GETDATE(),
    age = (CASE WHEN age is NULL AND @id = 10 THEN 22 ELSE age END)
WHERE Name = 'David'

sqlfiddle