Деление по NULL в IBM DB2 - PullRequest
       36

Деление по NULL в IBM DB2

0 голосов
/ 26 февраля 2019

В Oracle любое число, деленное на NULL, возвращает NULL.Мне было интересно, как обстоят дела с базами данных DB2?Весь смысл в том, чтобы проверить, одинаково ли ведет себя следующее выражение для Oracle и DB2: SELECT a / NULLIF (b, 0) FROM some_table;Скажем, b = 0, мы получили бы деление на ноль.

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Db2 возвращает ноль, если один из операторов в математическом выражении равен нулю.Например,

values (3 / cast(null as integer)) will return null.

С другой стороны, определение NULLID равно определению в Oracle.Если оба аргумента равны, он вернет ноль.

0 голосов
/ 26 февраля 2019

Функция NULLIF возвращает нулевое значение, если два аргумента равны;в противном случае возвращается значение первого аргумента.

-NULLIF (выражение, выражение) -------------------------------

Результат использования NULLIF (e1, e2) аналогичен выражению CASE:

CASE WHENe1 = e2 THEN NULL ELSE e1 END Копировать

Когда e1 = e2 оценивается как неизвестный, поскольку один или оба аргумента равны нулю, выражения CASE считают оценку неверной.В этом случае NULLIF возвращает значение первого аргумента. IBM DB2 docs

Так что для DB2 и oracle это работает одинаково

...