我有一个包含图像类型列的表,该表有一些行,但所有行还没有任何图像,它们都是空的。为了测试 CASE WHEN 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
使用不同的形式CASE
代替:
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