求:SQL中的一个算法
设表中有一字段,decimal(5,1),其小数位只可能为5或0,即XXX.5或都XXX.0两种形式现要将该字段的数值乘以0.8,再除以0.9,之后再存到该字段中,
运算后若小数位小于5,则小数位置为0,如:30.5*0.8/0.9=27.111111=27.0
运算后若小数位大于等5,则小数位置为5,如:14.5*0.8/0.9=12.88889=12.5
问在SQL的update语句中如何实现?
update tabname
set col = case when round(col*0.8/0.9) > col*0.8/0.9 then trunc(col*0.8/0.9) + 0.5
else
trunc(col*0.8/0.9)
end
;
case 是关键字吗?
提示:
217: Column (case) not found in any table in the query. 你的informix什么版本?
这个语句不支持?
奇怪的很
贴出你的代码和运行结果来? 我的是SE版的,好像连round,trunc函数都没有 那你可以考虑使用decode,或者存储过程 谢谢,已解决
页:
[1]