В реляционной модели данных значение NULL
не является обычным значением и не преобразуется в какое-либо конкретное значение в соответствии с различными операторами.
СУММА, как и другие совокупности операторов, игнорировать NULL значения, так что на самом деле суммирования столбец с нулевыми значениями эквивалентна сумме всех ненулевое значение, и это, obiously, что эквивалентно, как лечить NULL
0
. Точно так же, если вы попытаетесь вычислить среднее числовое число, будут суммированы только значения, отличные от нуля, и чем общее количество будет делено на число ненулевых значений (не все значения).
С другой стороны, если вы хотите, чтобы рассмотреть нулевое значение специальным образом для некоторой операции, вы можете проверить его и заменить его со значением интересующими вас.
Например, следующими SQL-запрос вычисляет AVG
ненулевых значений column
:
SELECT AVG(column)
FROM table
в то время как следующий вычисляет AVG
с учетом NULL
значения, как 0
(и так дает результат, который отличается от предыдущего):
SELECT AVG(CASE WHEN column IS NULL THEN 0 ELSE column END)
FROM table
В какой книге? «Расширенная реляционная алгебра» не является стандартной. – philipxy