当NULL在SQLite中生成错误结果时的情况?

当NULL在SQLite中生成错误结果时的情况?,sql,database,sqlite,null,Sql,Database,Sqlite,Null,我有一个表,表中有一列图像类型,表中有一些行,但所有行还没有任何图像,它们都是空的。为了测试NULL时的情况,我尝试了这个方法,它给出了一个奇怪的结果: SELECT CASE myImageColumn WHEN NULL THEN 0 ELSE 1 END FROM myTable 所有返回的行都在一列1中(我认为是0)。这里怎么了 非常感谢您的帮助 谢谢大家! 您不能像那样与NULL进行比较,您应该尝试: SELECT CASE WHEN myImageColumn IS NULL TH

我有一个表,表中有一列图像类型,表中有一些行,但所有行还没有任何图像,它们都是空的。为了测试NULL时的情况,我尝试了这个方法,它给出了一个奇怪的结果:

SELECT CASE myImageColumn WHEN NULL THEN 0 ELSE 1 END FROM myTable
所有返回的行都在一列1中(我认为是0)。这里怎么了

非常感谢您的帮助


谢谢大家!

您不能像那样与
NULL
进行比较,您应该尝试:

SELECT CASE WHEN myImageColumn IS NULL THEN 0 ELSE 1 END 
FROM myTable

使用不同形式的
案例

SELECT CASE WHEN  myImageColumn IS NULL THEN 0 ELSE 1 END FROM myTable
两个有用的链接:

    • 有一个旁路:

      CASE ifnull(myValue, 'someUniqueStringOrValue')
        WHEN 'someUniqueStringOrValue' THEN 0 -- this means null
        WHEN 'someNormalValue' THEN 1
      END
      

      因为null是未知的,没有任何东西等于null。@MikeChristensen谢谢你,我知道你可以给我一个解决方案,但是你可以在这里评论一下,另一个已经回答了我的问题。非常感谢。拉马克的答案是完美的。我不太了解SQLLite,所以我不敢发布一个不起作用的答案:)这在MS SQL Server中不起作用,你知道SQL Server的解决方案吗?谢谢谢谢,在我向拉马克道谢后,你迟到了一点。但是给你我的+1。谢谢,好主意。谢谢