Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Oracle SQL中特定公式的代码计算值?_Sql_Oracle - Fatal编程技术网

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

如何使用Oracle SQL中特定公式的代码计算值?,sql,oracle,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查询中实现这些公式?您可以使用聚合: select sum(case when cod

我有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查询中实现这些公式?

您可以使用聚合:

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;
只是通过union实现上述功能的不同方式

      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%'