我的这个表有五列(a,b,c,d,e),我需要对列的值求和,但前提是该特定行的每列值都不是0。 / p>
让我们说我的表是这样的:
String user="sys as sysdba"
在这种情况下,我只需要对第2行和第3行的值求和,因为在第1行中有一个0,但我不确定如何去做它
答案 0 :(得分:4)
您可以使用not in
:
select sum(a),sum(b), sum(c), sum(d), sum(e)
from tbl
where 0 not in (a, b, c, d, e)
答案 1 :(得分:1)
试试这个
SELECT
SUM(
CASE WHEN A > 0 THEN A END
+
CASE WHEN B > 0 THEN B END
+
CASE WHEN C > 0 THEN C END
+
CASE WHEN D > 0 THEN D END
+
CASE WHEN E > 0 THEN E END
)
FROM YourTable
答案 2 :(得分:0)
...也许
WITH VTE AS (
SELECT *
FROM (VALUES (1,0,2,1,2),
(1,1,1,2,1),
(1,3,4,5,2)) V(a,b,c,d,e))
SELECT CASE WHEN 0 NOT IN(a,b,c,d,e) THEN a+b+c+d+e END AS SumValue
FROM VTE;
OP没有说明在行有0
的情况下返回的内容,因此返回 NULL
。