@ TonyAndrews:
... можно ожидать возвращения всех сотрудников, которые не являются менеджерами. Однако, конечно, если JOB может быть нулевым, то этот запрос не вернет сотрудников, чье JOB равно нулю. Возможно, это обоснование политики значений по умолчанию ....
NULL был изобретен для обработки пропущенного значения, поэтому для вашего запроса совершенно рационально не возвращать строки с нулевым значением в поле задания!
Вы просите СУБД вернуть строки, задания которых не являются «Менеджерами»; это значит не возвращать мне тех, чья работа неизвестна. если вы также хотите пропустить работу, это другой вопрос.
только представьте, что могут быть некоторые менеджеры, чьи поля заданий имеют значение NULL (отсутствует, еще не введено), поэтому, если база данных возвратит их, результат запроса будет абсолютно неверным!
Возвращаясь к основному вопросу, я думаю, что если поле имеет значение NULL, оно должно иметь значение NULL в случае пропущенного значения, в противном случае, если поле никогда не имеет пропущенного значения (или всегда требует значение по умолчанию), просто сделайте его НЕ ПУСТО (NULL) по умолчанию значение. и это основано на бизнес-логике в определенном состоянии.