Join 返回一列中的所有结果,但使用where语句筛选另一列
使用SQlite 3,并有一个如下所示的表Join 返回一列中的所有结果,但使用where语句筛选另一列,join,sqlite,union,Join,Sqlite,Union,使用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 |
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有值
我想我可能需要一个并集或联接,但我似乎找不到一个总是返回单个列的结果的示例 测试
a!='空“
将永远不会为真。您需要使用a is not null
但是,要在任何数字为空时返回空总数,只需执行以下操作:
select ts, a+b+c
from tablename;
为什么这样做有效?因为在SQL中,如果表达式的任何部分为null,则整个表达式为null。当你认为NULL意味着“未知”时,这是有意义的。从逻辑上讲,如果计算的一部分未知,则结果未知。感谢您的帮助和解释,我非常感谢。看起来我需要阅读更多关于SQL中null用法的内容。