我有一列图像,我想添加一个选择列(称为HasImage)来指示如果图像为null,则HasImage的值应为false(或位0),否则HasImage应具有值是(或第1位):
SELECT CAST(CASE WHEN ImageColumn IS NULL THEN 0 ELSE 1 END AS bit) AS HasImage FROM MyTable
我知道 IsNull 功能,但我在使用 IsNull 之前尝试了这个,当用上述查询将数据填充到DataTable中时,值都是长型(不是我预期的那样)?
为什么会这样?
非常感谢你!
答案 0 :(得分:2)
只需使用:
SELECT CASE WHEN ImageColumn IS NOT NULL THEN 1 ELSE 0 END AS HasImage
FROM mytable
请注意,SQLite没有真正的BOOLEAN
或BIT
类型。相反,您可以使用结果整数值0或1,就像它是布尔值一样 - 它通常适用于所有意图和目的,包括在布尔表达式中使用它。
例如,请参阅this SQLFiddle。
答案 1 :(得分:0)
我认为SQLite没有“位”数据类型。请参阅:http://www.sqlite.org/datatype3.html