我的查询看起来基本上像
WITH DATA AS(
SELECT fields
FROM table
WHERE [many conditions]
AND NOT field1 = 'string'
)
SELECT foo,
bar,
CASE
WHEN field1 IS NULL THEN 'other_string'
[other cases]
END
FROM data
还有很多其他的事情,但这是不起作用的核心部分。这应该会给我很多结果。但是,该特定情况的结果为零;如果我删掉查询的其余部分并基本上只运行这个,它只是一个空表。
AND NOT field1 = 'string'
似乎正在过滤掉 field1 为“字符串”的所有行,但也过滤掉了 field1 为空的所有行。如果 field1 为 null,那么field1 = 'string'
应该评估 false(因为 null 不等于任何内容),因此NOT field1 = 'string'
应该评估 true,并且这些行应该在查询中——对吗?
实际上不确定我正在使用的 Redash 前端后面运行的是什么 sql 实现,但我可以确定它是否相关。