【发布时间】:2022-12-07 22:04:07
【问题描述】:
回合前或回合后正确的 nvl 是多少?
Select nvl(round(10.5555,2),0) as value from dual
Select round(nvl(10.5555,0),2) as value from dual
【问题讨论】:
-
两者都有效。但在这种情况下都没有意义,10.5555 永远不会等于 NULL
回合前或回合后正确的 nvl 是多少?
Select nvl(round(10.5555,2),0) as value from dual
Select round(nvl(10.5555,0),2) as value from dual
【问题讨论】:
没关系。
在这种情况下,甚至不使用 NVL,因为 10.5555 永远不会为 NULL。如果你使用了范围反而:
SQL> select nvl(round(&value, 2), 0) as value from dual;
Enter value for value: 10.5555
VALUE
----------
10,56
SQL> select round(nvl(&value, 0), 2) as value from dual;
Enter value for value: 10.5555
VALUE
----------
10,56
SQL>
如您所见,没有区别。
【讨论】: