如何在Oracle SQL中使用特定公式的代码计算值?

时间:2018-12-09 17:59:09

标签: sql oracle

我有Oracle SQL查询。 结果我得到类似的东西:

CODE || VALUE
I || 10
II || 30
III || 50
IV || -20
V || 60
VII || -45
VIII || 0
IX || 100
X || 0

接下来,我要为CODE = X创建像这样的公式:

情况1:

SUM OF I,II,III,IV,V,IX

情况2:

I+II+III-IV-V+IX

如何在SQL查询中强制使用这些公式?

2 个答案:

答案 0 :(得分:1)

您将使用聚合:

select sum(case when code in ('I', 'II', 'III', 'IV', 'V', 'IX') then value else 0 end) as case1,
       sum(case when code in ('I', 'II', 'III', 'IX') then value
                when code in ('IV', 'V') then -value
                else 0
           end) as case2
from t;

答案 1 :(得分:0)

      select sum(value) from table where code not like 'VI%'   
      Union
      select sum(case when code in ('IV', 'V' ) then -value
      else value end case) from table where code not like 
        'VI%'   
  

只是通过联合来完成上述操作的另一种方式