select cars.car_id, cars.doors from cars where cars.doors>2
除了空值和“N / A”之外,上一个查询还会返回大于2的结果。 ,我尝试过NOT NULL但是空白大于2
并没有意义答案 0 :(得分:1)
INTEGER或REAL值小于任何TEXT或BLOB值。
要防止空条目匹配,您应该将数据库更改为使用SQL的NULL值,而不是(空或非空)字符串。
或者,将您的值转换为" empty"查询时为实际的NULL值:
where nullif(cars.doors, 'N/A') > 2
答案 1 :(得分:0)
这是隐式转换,当你有空数据时,进行比较时,它会被转换为0。
neighbours
结果是1。
答案 2 :(得分:0)
select doors from cars where cast(doors AS integer)>2;
它按预期工作但我仍然不明白为什么我应该将它转换为整数,尽管字段类型是整数