SQLite эквивалентно ISNULL (), NVL (), IFNULL () или COALESCE()



Я хотел бы избежать многих проверок, как показано ниже в моем коде:



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


я решил, что я мог бы просто мой запрос заботиться о нулях, делая что-то вроде этого:



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


я использую SQLite, хотя и не похоже, что он распознает

616   5  

5 ответов:

IFNULL смотрите здесь: http://www.sqlite.org/lang_corefunc.html#ifnull

нет скобок вокруг функции

попробуй такое

ifnull(X,Y)  

Эл.г

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

The ifnull() функция возвращает копию своего первого ненулевого аргумента или NULL, если оба аргумента равны NULL. Ifnull() должно быть ровно 2 аргумента. Элемент

Если нет ISNULL() метод, вы можете использовать это выражение вместо:

CASE WHEN fieldname IS NULL THEN 0 ELSE fieldname END

это работает так же, как ISNULL(fieldname, 0).

использовать IS NULL или IS NOT NULL в предложении WHERE-вместо метода ISNULL ():

SELECT myField1
FROM myTable1
WHERE myField1 IS NOT NULL

вы можете легко определить такую функцию и использовать ее затем:

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);}

Comments

    Ничего не найдено.