首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ORACLE,忽略null to sum

ORACLE,忽略null to sum
EN

Stack Overflow用户
提问于 2022-02-07 09:55:26
回答 2查看 67关注 0票数 1

我想添加一行的两列(数字类型),但是当其中一个列为null时,结果为null。我用NVL函数(NVL(Col1,0)+ NVL(col2,0))将其处理。但是,当两者都为空(而不是0)时,我想返回null。我该怎么处理呢?ORACLE中是否有忽略null的函数来对一行的两列进行求和?

代码语言:javascript
复制
| col1 | col2  |                                     |
|:---- |:-----:|:-----------------------------------:|
|  1   |   2   |      --> result have to be : 3      |
|  1   |  null |     --> result have to be : 1       |
| null |  null |     --> result have to be : null    |
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-07 10:31:03

coalesce(col1+col2,col1,col2)会更容易:

代码语言:javascript
复制
with t(col1,col2) as (
  select 0,1 from dual union all
  select 2,null from dual union all
  select null,3 from dual union all
  select null,null from dual
  )
select 
  col1,col2,
  coalesce(col1+col2,col1,col2) sum_cols  
from t;

结果:

代码语言:javascript
复制
      COL1       COL2   SUM_COLS
---------- ---------- ----------
         0          1          1
         2       null          2
      null          3          3
      null       null       null

4 rows selected.

如果要和的列更多,则使用sum进行子查询:

代码语言:javascript
复制
(select sum(column_value) from table(sys.odcinumberlist(col1,col2,...,colN)))

示例:

代码语言:javascript
复制
with t(col1,col2) as (
  select 0,1 from dual union all
  select 2,null from dual union all
  select null,3 from dual union all
  select null,null from dual
  )
select 
  col1,col2,
  coalesce(col1+col2,col1,col2) sum_cols,
  (select sum(column_value) from table(sys.odcinumberlist(col1,col2))) sum_cols2
from t;

DBFiddle18&fiddle=eda8de9746f1d0def3c290420adbb705

票数 1
EN

Stack Overflow用户

发布于 2022-02-07 10:00:30

在这里,CASE表达式可能是最简单的方法:

代码语言:javascript
复制
SELECT CASE WHEN col1 IS NULL AND col2 IS NULL
            THEN NULL
            ELSE NVL(col1, 0) + NVL(col2, 0) END AS output
FROM yourTable;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71016557

复制
相关文章

相似问题

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