sql server 2008,需要帮助才能编写条件更新语句
我有一个简单的更新说明sql server 2008,需要帮助才能编写条件更新语句,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有一个简单的更新说明 Update tbABC Set salary = 1000, name = 'mike' Where Id = 1 我需要在更新薪资时添加一个条件,如果薪资=0,则更改为1000,否则薪资不会更改 我做了研究,发现了一个类似的问题。 我被卡在上面了????部分现在确定要放在那里的内容是salary=salary。这应该行得通 Update tbABC Set salary = CASE WHEN (salary = 0) then 1000 ELSE salary
Update tbABC
Set salary = 1000, name = 'mike'
Where Id = 1
我需要在更新薪资时添加一个条件,如果薪资=0,则更改为1000,否则薪资不会更改
我做了研究,发现了一个类似的问题。
我被卡在上面了????部分现在确定要放在那里的内容是salary=salary。这应该行得通
Update tbABC
Set salary = CASE WHEN (salary = 0) then 1000 ELSE salary END,
name = 'mike'
Where Id = 1
这应该行得通
Update tbABC
Set salary = CASE WHEN (salary = 0) then 1000 ELSE salary END,
name = 'mike'
Where Id = 1
除非绝对必要,否则我可能更喜欢使用WHERE子句而不是复杂的CASE函数。简化,这将提供:
update tbABC set salary=1000, name='mike' -- using condition for both field updates
where Id=1 and salary=0;
或者保留事务的确切逻辑:
update tbABC set salary=1000 -- by ID & only if second condition met
where Id=1 and salary=0;
update tbABC set name='mike' -- by ID.
where Id=1;
我真的不相信现实世界中有无条件更新员工姓名的情况,但对他的薪资更新有一些条件。除非绝对必要,否则我可能更喜欢使用WHERE子句,而不是复杂的case函数。简化,这将提供:
update tbABC set salary=1000, name='mike' -- using condition for both field updates
where Id=1 and salary=0;
或者保留事务的确切逻辑:
update tbABC set salary=1000 -- by ID & only if second condition met
where Id=1 and salary=0;
update tbABC set name='mike' -- by ID.
where Id=1;
我真的不相信现实世界中有无条件更新员工姓名的情况,但对他的薪资更新有一些条件。你已经解决了,但你没有意识到。把薪水放在里面就行了。然后,它会将该值更新为与以前相同的值。正如你所说,薪水=薪水。你已经算出来了,但你没有意识到。把薪水放在里面就行了。然后,它会将该值更新为与以前相同的值。正如你所说,薪水=薪水。