Это более любопытный вопрос. Я знаю, что этот вопрос кажется странным, но я использую null при проверке данных, потому что меня не интересуют, какие данные есть, но есть только данные IF. Я считаю, что следующий сценарий возникает только в SQL Server.COUNT (NULL) и IN IN
Когда я хочу увидеть, если запись существует, я буду использовать:
IF(EXISTS(SELECT null FROM Table1 WHERE Criteria IN (1, 2)))
Следующий код работает:
IF((SELECT COUNT(null) FROM Table1 WHERE Criteria = 1) = 2)
Но это не работает:
IF((SELECT COUNT(null) FROM Table1 WHERE Criteria IN (1,2)) = 2)
и получите эту ошибку:
Operand data type NULL is invalid for count operator.
Почему третье утверждение отличается от предложения IN?
Вот SQL Скрипка, о чем я говорю: http://sqlfiddle.com/#!6/6d7db/8
сузил только если есть несколько элементов в предложении слишком
Выполнение 'COUNT (NULL)' на самом деле ничего не делает для вас, например, 'COUNT (1)'. Я знаю, что это не ответ на вопрос, но что, если вы просто использовали 'COUNT (1)'? Допустимый синтаксис – Tom
Или просто счет (*). Это одно из немногих мест, где использование * прекрасно. –
Также внутри существует совершенно приемлемое использование select *. Все, что он делает, это проверка наличия строк. –