2013-04-03 2 views
0

В таблице EMPLOYEE есть столбец «Зарплата». Следующие два утверждения дают разные результаты. Какова может быть возможная причина?Какая разница в выходе этих 2 запросов MySQL

Query 1

SELECT COUNT(*) FROM EMPLOYEE; 

Query 2

SELECT COUNT(SALARY) FROM EMPLOYEE; 

Этот вопрос задают в экзамен, но я не получаю никакой разницы, даже если я оставил зарплату на 1 работника пустой

+2

См. Полное объяснение здесь: http://www.mysqlperformanceblog.com/2007/04/10/count-vs-countcol/ – Hackerman

+0

Что касается вашего редактирования, пробел ** не совпадает ** с NULL. – ceejayoz

ответ

1

SELECT COUNT(SALARY) FROM EMPLOYEE исключает сотрудников с зарплатой NULL.

+0

Нет. Я получаю счет как 8, даже если у меня 1 зарплата сотрудника как NULL. Но когда я выбираю, что зарплата служащего показывает 0 – user2241865

+0

Тогда вы не установили его как NULL, или схема столбца не допускает значения NULL и, таким образом, превращает ваш NULL в ноль. – ceejayoz

+0

ДА Я получил ответ Если столбец заработной платы определен как NULL, а затем, если зарплата сотрудника отсутствует, счетчик пропустит эту нулевую стоимость. Я получил это от http://cbsecsnip.in – user2241865

Смежные вопросы