gpt4 book ai didi

sql - ORA-01476 : "divisor is equal to zero" for SQL query (Oracle 10g)

转载 作者:行者123 更新时间:2023-12-03 21:19:00 33 4
gpt4 key购买 nike

我正在oracle 10g下创建一个SQL查询,结果应该给我类似的东西:

----------------------------------------------------------------------------------
TEXT VALUE1 VALUE2 VALUE3 VALUE4
---------------------------------------------------------------------------------
TEXT1 8795 5684 value1-value2 value3/value2*100
TEXT2 235 568 ... ...
TEXT3 125 23 ... ...
TEXT4 789 58 ... ...
TEXTN 0 0 ... ...

当我尝试计算VALUE4列时,出现此错误:
ORA-01476: le diviseur est égal à zéro
01476. 00000 - "divisor is equal to zero"
*Cause:
*Action:

我尝试了 DECODE函数,但我仍然有相同的错误,对于 CASE来说是相同的

注意:VALUE1,VALUE2,VALUE3和VALUE4是计算列; VALUE1 = sum(col1)+ sum(col2)..,因此对于其他VALUE2列。

感谢致敬

最佳答案

这完全取决于是否要计算一个值(如果会导致一个无限值)。您可以忽略这些特定实例,并按照Gordon's answer的建议对其余实例进行计算:

case when value2 <> 0 then value3 / value2 * 100 end

或者,如果要忽略它们,则可以使用 NULLIF() 将值更改为NULL而不进行任何计算:
value3 / nullif(value2, 0) * 100

我不理解您的争辩,认为这是一个计算所得的列会导致问题。如果它是虚拟列,那么您的表将永远不会创建,如 the documentation中所指定,虚拟列不能通过名称引用另一个。

如果它不是虚拟列,那么您可以照常在select语句中执行此操作。

关于sql - ORA-01476 : "divisor is equal to zero" for SQL query (Oracle 10g),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17022674/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com