我在一个表中有 3 列,所有列都包含数值。
我想添加列 a 和 b 并减去列 c 那会是什么 SQL?
除非我遗漏了什么,听起来你只需要这样做:
select (NVL(cola, 0) + NVL(colb, 0)) - NVL(colc, 0)
from yourtable
回答您在评论中对@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
分享和享受。
请检查以下逻辑进行减法,使用多列相加实现相同
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;
谢谢阿杰