Это, к сожалению, то, как SQL работает со значениями NULL.NULL не равно чему-либо, это НЕИЗВЕСТНО.Например, somevalue == NULL -> unknown somevalue <> NULL -> unknown
В результате он никогда не пройдет «истинную» проверку Null Values - Wikipedia
Есть несколько вариантов: A) Не разрешать нулевые значения (я рекомендую комбинировать это со значением по умолчанию) B) Используйте IFNULL, чтобы установить в поле какое-либо значение, например
(SELECT IFNULL(SalesPrice, -9999) FROM __OLD) <> (SELECT IFNULL(SalesPrice, -9999) FROM __NEW)
Но я нене знаю, обязательно ли мне это нравится, поскольку должно быть выбрано значение, которое не будет действительным.