Dmitry Yemanov: > St. Alex wrote: > > > > Ведь по матeматической логике данное выражение преобразовывается в > > not (id in (null,1,2,2,1)) -> not (id=null or id=1 or id=2) > > для id=3 пполучаем: > > not (3=null or 3=1 or 3=2) -> not(flase or false or false) > > Неверно. Ты получаешь: not (unknown or false or false), что дает not > (unknown), что равно unknown. >
Да. это уже ближе к истине. Так примерно в release notes и было написано а не то что Влад написал что любое сравнение с нулл дает false... Хотя чисто "по понятиям" если буквально рассамтривать условие 3 not in (null,1,2) получаем, что "да", 3 не является ни одним из членов перечисленного множества... Мне кажется, что когда логика SQL противоречит человечаской - это не есть хорошо. Написанный нами за три года код будет трудно пересмотреть на предмет изменившегося поведения подобных запросов :-(

