C# 是否使用表中某个列的值的某个百分比更新该列,然后将其四舍五入到SQL中最接近的整数?
假设我有一个包含三列的表C# 是否使用表中某个列的值的某个百分比更新该列,然后将其四舍五入到SQL中最接近的整数?,c#,asp.net,sql-server,C#,Asp.net,Sql Server,假设我有一个包含三列的表Employee,EID int,Salary int,Dept varchar 我想做的是将每个员工的工资增加5%,然后增加的值应四舍五入到最接近的整数,如2.7应存储为3 如何在SQL服务器查询中实现这一点 我尝试了此查询,但不起作用: update Employee set Salary = ROUND(Salary * @1.05) 但它却显示了以下错误: round函数需要2到3个参数 如果工资是一个int,则该值将自动截断以适合。因此,只需添加0.5: u
Employee
,EID int
,Salary int
,Dept varchar
我想做的是将每个员工的工资增加5%,然后增加的值应四舍五入到最接近的整数,如2.7应存储为3
如何在SQL服务器查询中实现这一点
我尝试了此查询,但不起作用:
update Employee
set Salary = ROUND(Salary * @1.05)
但它却显示了以下错误:
round函数需要2到3个参数
如果工资是一个
int
,则该值将自动截断以适合。因此,只需添加0.5:
update Employee
set Salary = Salary * 1.05 + 0.5;
如果你想对取整规则非常迂腐:
update Employee
set Salary = round(Salary * 1.05, 0);
我之所以说pedantic,是因为“1.5”四舍五入为2,而“4.5”四舍五入为4。让您使用ceil Function天花板(Salary*@1.05)返回大于或等于指定数值表达式的最小整数。对于ROUND函数上的MSDN文档,我认为在这种情况下使用
ROUND()。我同意第一种解决方案很好,但我认为第二种解决方案的代码更清晰。哇,太棒了,解决这个问题的超级技巧,我使用了你的第一种方法添加0.5