Агрегатные функции с NULL не работают должным образом - PullRequest
2 голосов
/ 12 мая 2019

С SQLite я пытаюсь сделать простой MAX():

SELECT MAX(100, NULL);

Возвращает null. Разве это не должно быть 100 вместо этого?

Согласно документации :

Aggregate max () возвращает NULL, если и только если в группе нет ненулевых значений.

100 является ненулевым значением, поэтому я не ожидаю получить null, возвращаемое из MAX() в этом случае. Я неправильно понимаю документацию? И как я могу использовать MAX(), либо игнорируя значения null в наборе, либо обрабатывая их как ноль 0?

1 Ответ

4 голосов
/ 12 мая 2019

Это не агрегатная версия.

С правильная документация :

Функция max () с несколькими аргументами возвращает аргумент с максимальным значением или возвращает NULL, если любой аргумент равен NULL.

и

Обратите внимание, что max () - это простая функция, когда она имеет 2 или более аргументов, но работает как агрегатная функция, если дан только один аргумент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...