Вы делаете это, потому что хотите получить значения NULL или потому, что вы не хотите, чтобы значения NULL мешали вашим сравнениям?
Например, это:
WHERE col_1 != 'John'
не вернет ни одной строки, для которой col_1 равно NULL (вы указали в своем вопросе, что знаете это).
Если вы пытаетесь получить строки col_1 IS NULL
для возврата с предложением WHEREКак и выше, у вас есть два варианта в MS SQL (один в mySql).
В MS SQL и mySql функция coalesce()
позволит вам выполнить сравнение такого рода.В MS SQL (я полагаю, что то же самое для mySql), его функция состоит в том, чтобы принимать два или более аргумента и оценивать их по порядку, возвращая первый ненулевой, который он находит.В MS SQL есть сокращенная функция с именем isNull()
, которая похожа на coalesce()
, но принимает только два параметра.
В приведенном выше примере вы должны сделать следующее:
WHERE coalesce(col_1,'') != 'John'
и это вернет строки с col_1 IS NULL, а также строки с ненулевыми значениями в col_1, которые не равны 'John'.
Если это ваша реальная цель, тогда этот метод должен работатьдля тебя.