Функция SUM считает NULL в Oracle 12c - PullRequest
0 голосов
/ 10 мая 2019

Я пытался получить нулевые значения при выполнении функции SUM () в sql, и я выяснил, что sql теперь учитывает нулевые значения, поэтому, если столбец имеет другое значение и нулевое значение, сумма хорошо рассчитывается.Например, у меня есть столбец SUM_EXAMPLE с различными значениями: NULL - 3 - 4 - NULL - 6

Так что, если я выполню следующий запрос: выберите sum (SUM_EXAMPLE) FROM TABLE T, результатом будет 13, а не NULL..

И если у меня есть еще один столбец SUM_COLUMNS только с NULL, результат выбора суммы (SUM_COLUMNS) FROM TABLE T будет равен NULL.Это было изменение или улучшение оракула, поэтому он работает правильно без использования таких функций, как isNull или NVL?

Спасибо

1 Ответ

3 голосов
/ 10 мая 2019

Агрегатные функции (SUM, AVERAGE и т. Д.) Обычно игнорируют значения NULL. Поэтому, если в столбце есть хотя бы одно ненулевое значение, вы получите ненулевой результат.

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

Обратите внимание, что это отличается от поведения скалярных функций. Например: «Выбрать x + y» вернет ноль, если x, y или оба равны нулю. Вы получите только ненулевой результат для этого, если оба x и y имеют ненулевые значения.

...