在oracle中,为什么1除以0需要TO_CHAR函数?

syqv5f0l  于 2023-01-25  发布在  Oracle
关注(0)|答案(2)|浏览(164)

这是我在开发SQL负载时使用的语法。我想知道为什么需要to_char来执行1除以0的操作。我阅读了to_char页面,但找不到解释。谢谢

SELECT CASE WHEN (1=2) THEN to_char(1/0) ELSE NULL END FROM dual
kpbwa7wx

kpbwa7wx1#

不能除以零。这将导致错误。问题是另一个。在您的示例中,如'(1=2)'始终为false,Oracle不执行表达式'to_char(1/0)',并且始终返回空值。

pwuypxnk

pwuypxnk2#

为什么你认为你需要to_char?在你贴出的例子中,你肯定不需要:
对于to_char

SQL> SELECT CASE WHEN (1=2) THEN to_char(1/0) ELSE NULL END result FROM dual;

R
-

没有它:

SQL> SELECT CASE WHEN (1=2) THEN 1/0          ELSE NULL END result FROM dual;

    RESULT
----------

SQL>

如果你删除to_char会发生什么?也许你没有发布你真正使用的代码,因为它会帮助我们帮助你。正如你已经被告知的,这是毫无意义的,因为条件从来没有满足,所以Oracle甚至不执行除以零(你应该以某种方式处理)。
那么,您究竟是如何“开发SQL有效负载”的呢?

相关问题