0

我有一列图像,我想添加一个选择列(称为 HasImage)来指示如果图像为空,则 HasImage 的值应为 false(或位 0),否则 HasImage 的值应为 true(或位 1):

SELECT CAST(CASE WHEN ImageColumn IS NULL THEN 0 ELSE 1 END AS bit) AS HasImage FROM MyTable

我知道IsNull函数,但我在使用IsNull之前刚刚尝试过,当使用上述查询将数据填充到 DataTable 中时,这些值都是 long 类型(不是我预期的 bool)?

知道为什么会这样吗?

非常感谢您!

4

2 回答 2

2

只需使用这个:

SELECT CASE WHEN ImageColumn IS NOT NULL THEN 1 ELSE 0 END AS HasImage
FROM mytable

请注意,SQLite 没有 trueBOOLEANBITtype。相反,您可以使用结果整数值 0 或 1,就好像它是布尔值一样 - 它通常适用于所有意图和目的,包括在布尔表达式中使用它。

例如,请参阅此 SQLFiddle

于 2013-04-28T22:38:54.070 回答
0

我认为 SQLite 没有“位”数据类型。看到这个: http ://www.sqlite.org/datatype3.html

于 2013-04-28T22:16:02.237 回答