用不同的条件更新 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'
我想根据两个条件更新我的学生 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'