首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ORA-01476:对于SQL查询“除数等于零”(Oracle10g)

ORA-01476:对于SQL查询“除数等于零”(Oracle10g)
EN

Stack Overflow用户
提问于 2013-06-10 11:19:14
回答 2查看 125.6K关注 0票数 11

我在oracle 10g下创建了一个SQL查询,结果应该是这样的:

代码语言:javascript
复制
----------------------------------------------------------------------------------
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列时,会得到以下错误:

代码语言:javascript
复制
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列也是如此。

感谢并致以问候

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-10 11:32:05

这完全取决于是否要计算一个值,如果它会导致无限值的话。您可以忽略这些特定实例,并按照戈登的回答的建议计算其余的实例:

代码语言:javascript
复制
case when value2 <> 0 then value3 / value2 * 100 end

或者,如果想忽略它们,可以使用NULLIF()将值更改为NULL,而不计算任何内容:

代码语言:javascript
复制
value3 / nullif(value2, 0) * 100

我不理解你的论点,这是一个经过计算的列引起一个问题。如果它是一个虚拟列,那么您的表就永远不会创建,正如在文献资料中指定的那样,虚拟列不能按名称引用其他列。

如果它不是虚拟列,那么您可以在select语句中如常地这样做。

票数 25
EN

Stack Overflow用户

发布于 2013-06-10 11:22:17

在您的代码中,您有:

代码语言:javascript
复制
select value3/value2*100 as value4

你应该:

代码语言:javascript
复制
select (case when value2 <> 0 then value3/value2*100 end) as value4

鉴于你的问题:

代码语言:javascript
复制
select value1, value2, value3,
       (case when value2 is not null then value3 / value2 * 100 end) as value4
from (select value1, value2, (value1 - value2) as value3
      from . . .
     )
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17022674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档