Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否使用表中某个列的值的某个百分比更新该列,然后将其四舍五入到SQL中最接近的整数?_C#_Asp.net_Sql Server - Fatal编程技术网

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