SQL中如何批量更新表中的记录
我要更新表prodbasic中的pcs_area字段的内容,四舍五入后保留小数点后四位,SQL语句如下;updateprodbasicsetpcs_area=cast(r...
我要更新表prodbasic中的pcs_area字段的内容,四舍五入后保留小数点后四位,SQL语句如下;
update prodbasic set pcs_area= cast(round(pcs_area,4) as decimal(9,4))
但是会提示错误;子查询的传回值不只一个。这种状况在子查询之后有 =、!=、<、<=、>、>= 或是子查询作为运算式使用时是不允许的
后来我试过写临时表,同样出现上面的错误,后来我写了个游标,但是只更新了小部分的,其他的都麼有更新,我真郁闷
是不是pcs_area的值有相同的造成的,还是因为其他原因,请高手帮我呀
回覆一楼;这样不能满足 四舍五入后保留小数点后四位 呀 展开
update prodbasic set pcs_area= cast(round(pcs_area,4) as decimal(9,4))
但是会提示错误;子查询的传回值不只一个。这种状况在子查询之后有 =、!=、<、<=、>、>= 或是子查询作为运算式使用时是不允许的
后来我试过写临时表,同样出现上面的错误,后来我写了个游标,但是只更新了小部分的,其他的都麼有更新,我真郁闷
是不是pcs_area的值有相同的造成的,还是因为其他原因,请高手帮我呀
回覆一楼;这样不能满足 四舍五入后保留小数点后四位 呀 展开
2个回答
展开全部
这样就可以了:
update prodbasic set pcs_area= round(pcs_area,4)
我的语句确实是四舍五入后保留了小数点后的四位,但是你存入原来的字段就不对了,因为原来的字段小数点后面不止四位,程序会字段添加些0在后面。
告诉你正确的方法:
一、给表增加一个字段,比如pcs_area2 decimal(9,4)
二、执行语句update prodbasic set pcs_area2=pcs_area能自动进行四舍五入转换
三、删除表中字段pcs_area
四、修改pcs_area2的字段名为pcs_area
update prodbasic set pcs_area= round(pcs_area,4)
我的语句确实是四舍五入后保留了小数点后的四位,但是你存入原来的字段就不对了,因为原来的字段小数点后面不止四位,程序会字段添加些0在后面。
告诉你正确的方法:
一、给表增加一个字段,比如pcs_area2 decimal(9,4)
二、执行语句update prodbasic set pcs_area2=pcs_area能自动进行四舍五入转换
三、删除表中字段pcs_area
四、修改pcs_area2的字段名为pcs_area
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询