NULL = НЕИЗВЕСТНО.Таким образом, вы не можете сказать, что MyNCol = 'My Value' или MyNCol <> 'My Value' - оба имеют значение UNKNOWN (точно так же, как 'foo' + MyNCol все равно станет NULL).Альтернатива опубликованному вами обходному пути:
WHERE COALESCE(MyNCol, 'Not my Value') <> 'My Value';
Это будет включать столбцы NULL, потому что сравнение становится ложным, а не неизвестным.Мне эта опция не нравится больше, потому что в сравнении она использует какое-то магическое значение, даже если это магическое значение будет предоставлено только тогда, когда столбец равен NULL.