SQLite查询,如果特定列值为NULL,则从表中选择列

时间:2011-08-25 10:52:23

标签: iphone objective-c ios sqlite isnull

我有一个带有1个表和4个列的sqlite数据库。其中一列是可选的,可能包含NULL值。如果此列为空,我想在其他3列中获取值。

例如,

column 1    column 2    column 3    column4
a           b                       d
e           f           g           h
i           j                       l

我希望在sqlite方面实现的目标是:

SELECT column1 WHERE column3 IS NULL;

由于IS NULL在SQLite中不起作用,我不知道如何实现这一点。我是一名具有很少数据库知识的iOS开发人员。任何帮助将不胜感激。

UPDATE1:@rptwsthi建议在第3列中包含默认值,这肯定会解决我的问题。但是,我认为这必须在创建数据库时完成,我是否正确?或者这可以通过其他方式完成吗?

UPDATE2:我确实引用了关于IS NULL和IS NOT NULL的SQLite文档。但只有IS NOT NULL返回值,IS NULL不起作用。它甚至没有抛出错误。

UPDATE3:我在第3栏中看到没有值的时候。我也使用终端命令。所以我的代码是

SELECT column1 WHERE column3 IS NULL;

此致 iSee的

2 个答案:

答案 0 :(得分:2)

来自SQLite documentation

  

IS和IS NOT运算符的工作方式与=和!=相同,除非是一个或两个   操作数为NULL。在这种情况下,如果两个操作数均为NULL,   那么IS运算符的计算结果为1(真)和IS NOT运算符   评估为0(假)。如果一个操作数为NULL而另一个不是,   那么IS运算符的计算结果为0(false),IS NOT运算符为   1(真)。

根据这一点,IS NULL在SQLite中应该可以正常工作。

答案 1 :(得分:1)

SQLite支持IS NULL功能

你能给你编码在xcode中编写查询的代码

我在sqllite中尝试了IS NULL,效果很好..