Количество NULL в запросе
При определении количества элементов в виде «NULL» в результирующей таблице запроса нам возвращается значение «0».
- Описание
- Подробнее
Описание
1. Искусственно сформируем таблицу с двумя строками, где колонка будет со значением "NULL":
ВЫБРАТЬ
NULL КАК Поле1
ПОМЕСТИТЬ ВременнаяТаблица
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
NULL
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
КОЛИЧЕСТВО(ВременнаяТаблица.Поле1) КАК Поле1
ИЗ
ВременнаяТаблица КАК ВременнаяТаблица
В результате получим таблицу:

2. Немного изменим запрос.
Добавим в одни из первых запросов значение:
ВЫБРАТЬ
NULL КАК Поле1
ПОМЕСТИТЬ ВременнаяТаблица
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
1
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
КОЛИЧЕСТВО(ВременнаяТаблица.Поле1) КАК Поле1
ИЗ
ВременнаяТаблица КАК ВременнаяТаблица
В результате получим таблицу:

3. Попробуем добавить в запрос "РАЗЛИЧНЫЕ":
ВЫБРАТЬ
NULL КАК Поле1
ПОМЕСТИТЬ ВременнаяТаблица
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
1
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВременнаяТаблица.Поле1) КАК Поле1
ИЗ
ВременнаяТаблица КАК ВременнаяТаблица
В результате получим таблицу:

Вывод:
Известно, что NULL не является значением (его отсутствие), но для меня было не очевидно данное поведение.

