SQL Server предупреждающее сообщение о пустых значениях - PullRequest
1 голос
/ 16 декабря 2009

Это предупреждающее сообщение, которое я периодически получаю от сервера SQL ...

Предупреждение: нулевое значение устраняется с помощью агрегата или другой операции SET.

Это просто говорит о том, что значение, равное Null, устанавливается на что-то отличное от Null. Почему я должен быть «предупрежден» об этом?

Ответы [ 4 ]

9 голосов
/ 16 декабря 2009

Вы включили предупреждений ansi и используете агрегат (сумма, максимум, мин, ...) для столбца, который содержит нулевое значение.

SET ANSI_WARNINGS OFF

Цитата:

Если установлено значение ON, если в агрегатных функциях появляются пустые значения, такие как SUM, AVG, MAX, MIN, STDEV, STDEVP, VAR, VARP или COUNT, генерируется предупреждающее сообщение. Если установлено значение OFF, предупреждение не выдается.

7 голосов
/ 16 декабря 2009

Нет, он говорит вам, что значение NULL передается статистической функции. А поскольку агрегатные функции игнорируют значения NULL (за исключением COUNT), это может быть нежелательным поведением. Поэтому вы предупреждены.

3 голосов
/ 16 декабря 2009

Вы получаете это, потому что нули не могут быть оценены. Таким образом, если вы не используете null, значение null ни больше, ни меньше, ни равно чему-либо. Это означает, что если вы используете MAX (), эти строки с нулевым значением будут игнорироваться. Теперь вы можете обернуть столбец функцией isnull, и вы больше не получите сообщение.

0 голосов
/ 16 декабря 2009

Наиболее распространенным случаем этого является выполнение команды SELECT COUNT(<column>). Любые <column> записи, которые являются нулевыми, будут игнорироваться.

...