相当于ISNULL(),NVL(),IFNULL()或COALESCE()

我想避免在我的代码中有如下的许多检查:

myObj.someStringField = rdr.IsDBNull(someOrdinal) ? string.Empty : rdr.GetString(someOrdinal); 

我想我可以通过做这样的事情来让我的查询照顾空值:

 SELECT myField1, [isnull](myField1, '') FROM myTable1 WHERE myField1 = someCondition 

我使用SQLite,但似乎并没有认识到isnull函数。 我也尝试了一些在其他数据库( NVL()IFNULL()COALESCE() )中识别的等价类,但是SQLite似乎没有认出它们中的任何一个。

有没有人有任何build议或知道更好的方法来做到这一点。 不幸的是,数据库没有所有字段的默认值。 另外,在某些情况下,我需要使用一些LEFT JOIN子句,其中一些返回的字段将为空,因为LEFT JOIN表中的匹配logging将不存在。

IFNULL ,请参阅此处: http : IFNULL

function周围没有括号

尝试这个

 ifnull(X,Y) 

例如

 select ifnull(InfoDetail,'') InfoDetail; -- this will replace null with '' select ifnull(NULL,'THIS IS NULL');-- More clearly.... 

ifnull()函数返回其第一个非NULL参数的副本,如果两个参数都为NULL,则返回NULL。 Ifnull()必须有2个参数。 ifnull()函数等同于具有两个参数的coalesce()

如果没有ISNULL()方法,则可以使用这个expression式:

 CASE WHEN fieldname IS NULL THEN 0 ELSE fieldname END 

这与ISNULL(fieldname, 0)

在WHERE子句中使用IS NULLIS NOT NULL而不是ISNULL()方法:

 SELECT myField1 FROM myTable1 WHERE myField1 IS NOT NULL 

你可以很容易地定义这样的function,然后使用它:

 ifnull <- function(x,y) { if(is.na(x)==TRUE) return (y) else return (x); } 

或相同的缩小版本:

 ifnull <- function(x,y) {if(is.na(x)==TRUE) return (y) else return (x);}