Является ли функция Null в DB2 SQL? - PullRequest
16 голосов
/ 15 сентября 2008

Существует ли перформант, эквивалентный функции isnull для DB2?

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

Select product.id, isnull(product.name, "Internal) 
From product

Может вернуться:

1 Socks 
2 Shoes 
3 Internal 
4 Pants

Ответы [ 7 ]

35 голосов
/ 14 июля 2009

Для чего стоит COALESCE похож, но

IFNULL(expr1, default)

- это точное соответствие, которое вы ищете в DB2.

COALESCE допускает несколько аргументов, возвращая первое NON NULL выражение, тогда как IFNULL разрешает только выражение и значение по умолчанию.

Таким образом

SELECT product.ID, IFNULL(product.Name, "Internal") AS ProductName
FROM Product

Дает вам то, что вы ищете, а также предыдущие ответы, просто добавляя для полноты.

3 голосов
/ 15 сентября 2008

Я не знаком с DB2, но вы пробовали COALESCE?

е:


SELECT Product.ID, COALESCE(product.Name, "Internal") AS ProductName
FROM Product
2 голосов
/ 31 марта 2017

В DB2 есть функция NVL (поле, значение, если ноль).

Пример:

ВЫБЕРИТЕ ID, NVL (ИМЯ, "Внутренний) КАК ИМЯ, NVL (ЦЕНА, 0) КАК ЦЕНА ИЗ ПРОДУКТА С UR;

2 голосов
/ 26 мая 2014
Select Product.ID, VALUE(product.Name, "Internal") AS ProductName from Product
0 голосов
/ 28 сентября 2017

надеюсь, что это может помочь кому-то еще

  SELECT 
.... FROM XXX XX
WHERE
....
AND(
       param1 IS NULL
       OR XX.param1 = param1
       )
0 голосов
/ 02 ноября 2008

Я думаю, COALESCE функция частично похожа на isnull, но попробуйте.

Почему бы вам не использовать нулевые функции обработки через прикладные программы, это лучшая альтернатива.

0 голосов
/ 02 октября 2008

COALESCE функция такая же ISNULL функция Заметка. Вы должны использовать функцию COALESCE с тем же типом данных столбца, который вы проверяете, равен нулю.

...