select
A,
B,
NVL((A-B) / DECODE(A, 0, NULL, B), 0) as result
from table1
where NVL((A-B) / DECODE(A, 0, NULL, B), 0) as result > 0.5
字符串
我想知道如何解决“除以零”错误使用解码,但不知道如何与铸造,浮动,圆得到的除法结果到第二plance
用上面的代码,我得到整数结果
A B Result(A-B)/B
1500 700 1
3000 0 blank or null
型
我需要得到的结果的第二个小数位,结果大于1
A B Result(A-B)/B
1500 700 1.14
3000 0 blank or null
型
2条答案
按热度按时间dffbzjpn1#
有多种选项;使用
decode
、case
或nullif
,例如字符串
正如你所看到的,默认情况下,结果 * 确实 * 包含小数,这意味着-如果你没有看到任何-它是关于你的环境和/或你使用的工具中的设置。
如果你想限制小数点的个数为2,通常我们使用
round
函数(另一个 * 流行 * 的选项是trunc
):型
如果您使用SQL*Plus(就像我一样),它提供了各种
SET
命令;其中一个命令允许您指定numformat
,然后由numformat
处理它:型
sh7euo9m2#
您可以将计算(包括
ROUND
)放入DECODE
:字符串
或者,如果你不想写
DECODE
语句两次,那么使用内联视图来过滤:型