使用SQlite 3,并有一个如下所示的表
PKEY|TS | A |B |C
1 |00:05:00|200|200|200
2 |00:10:00|100|100|100
3 |00:15:00| |25 |
4 |00:20:00| | |
目前我正在使用
select ts, (a+b+c) from tablename WHERE a !='null' AND b !='null' and c !='null';"
返回
TS | (a+b+c)
00:05:00|600
00:10:00|300
我希望我的结果如下所示:
TS | total
00:05:00|600
00:10:00|300
00:15:00|
00:20:00|
换句话说,我总是希望从TS列返回所有内容,但除非A,B和C具有值,否则我不想返回总数。
我想我可能需要一个联合或联接,但我似乎无法找到一个示例,其中始终返回单个列的结果。
答案 0 :(得分:0)
a != 'null'
的测试永远不会成真。你需要使用a is not null
。
但是,如果任何数字为null,则返回null total,只需执行以下操作:
select ts, a+b+c
from tablename;
为什么这样做?因为在SQL中,如果表达式的任何部分为null,则整个表达式为null。当你认为null意味着“未知”时,这是有道理的。从逻辑上讲,当部分计算未知时,结果是未知的。