Ответ 1
SELECT COUNT(*)
FROM Person
WHERE BirthDate IS NULL
Я пытаюсь подсчитать количество записей с нулевым значением DateTime. Однако по какой-то причине мои попытки потерпели неудачу. Я пробовал следующие два запроса без везения:
SELECT COUNT(BirthDate)
FROM Person p
WHERE p.BirthDate IS NULL
и
SELECT COUNT(BirthDate)
FROM Person p
WHERE p.BirthDate = NULL
Что я делаю неправильно? Я могу видеть записи с BirthDate из NULL, когда я запрашиваю все записи.
SELECT COUNT(*)
FROM Person
WHERE BirthDate IS NULL
Все ответы верны, но я объясню, почему...
COUNT (столбец) игнорирует NULL, COUNT (*) содержит NULL.
Итак, это работает...
SELECT COUNT(*)
FROM Person
WHERE BirthDate IS NULL
попробуйте это
SELECT COUNT(*)
FROM Person p
WHERE p.BirthDate IS NULL
Это происходит потому, что вы пытаетесь сделать COUNT на NULL. Я думаю, что если вы проверите вкладку сообщений, у вас может появиться сообщение с сообщением NULL values eliminated from aggregate
Что вам нужно изменить, это поле, которое вы считаете
Select Count (1) FROM Person WHERE BirthDate IS NULL
Select Count (*) FROM Person WHERE BirthDate IS NULL
Select Count (1/0) FROM Person WHERE BirthDate IS NULL
Select Count ('duh') FROM Person WHERE BirthDate IS NULL /* some non null string*/
Вам нужно использовать "IS NULL", а не "= NULL"
SELECT
COUNT('')
FROM
Person p
WHERE
BirthDate IS NULL