添加和减去多个列

时间:2012-08-30 17:14:43

标签: sql oracle

我在表格中有3列,所有列都包含数值。

我想添加列a和b以及减去列c这将是什么SQL?

3 个答案:

答案 0 :(得分:3)

除非我遗漏了某些内容,否则听起来你只需要这样做:

select (NVL(cola, 0) + NVL(colb, 0)) - NVL(colc, 0)
from yourtable

答案 1 :(得分:1)

回答你在评论中提出的问题@ bluefeet的回答:

SELECT CASE
         WHEN A = B + C THEN A - C
         ELSE A + B - C
       END AS RESULT_VAL
  FROM SOME_TABLE

或者您可以在第一种情况下简单地返回B:

SELECT CASE
         WHEN A = B + C THEN B
         ELSE A + B - C
       END AS RESULT_VAL
  FROM SOME_TABLE

分享并享受。

答案 2 :(得分:0)

请检查以下逻辑以减去,使用添加多列实现相同

select 
SUM(a.COL1 -       B.COL1) COL1,
SUM(a.COL2 -       B.COL2) COL2,
SUM(a.COL3 -  B.COL3) COL3,
SUM(a.COL4 - B.COL4) COL4,
SUM(a.COL5 -       B.COL5) COL5 ,
SUM(a.COL6 -       B.COL6) COL6,
SUM(a.COL7-    B.COL7) COL7
FROM 
(select Coln, --Common column
sum(COL1) COL1 ,
sum(COL2)  COL2,
sum(COL3) COL3,
sum(COL4) COL4,
sum(COL5) COL5,
sum(COL6) COL6,
sum(COL7) COL7
from wrk_prod
GROUP BY Coln) a,
(select Coln, --Common column
sum(COL1) COL1 ,
sum(COL2)  COL2,
sum(COL3) COL3,
sum(COL4) COL4,
sum(COL5) COL5,
sum(COL6) COL6,
sum(COL7) COL7
from wrk_test
GROUP BY Coln) b
where a.Coln = b.Coln;

由于 阿贾伊