>> select 'Ok' from  rdb$database   where 0 not in  (null, 0)
>>     подозреваю что неправильно разбирается строка:
>>   вот! ЭТО БАГА !!! И притом понкретная ...

OL> SQL - это язык, который можно просто читать, не вдаваясь в
OL> углублённое изучение разбора AND/OR/NOT/XOR
    Согласен, но -

(SKIP)
OL>  в нашем замечательном журнале "А [EMAIL PROTECTED] его знает",
(SKIP)
OL>  "Мамой кланусь

     инфо, ИМХО, неправильная ....

     A not in () - в переводе как раз не изначает дословно
                    'там () всё не равно "A" !'
                  , а как раз наоборот -
                    '"A" не равно ничему в () ?'
                    
     разница едва ошутима, но ... на практике это означает
     что не надо искать "правду жизни во всём ..." если
     что-то нас удовлетворяет - и достаточно ...
     Отходя от лирики - это, грубо говоря отсутствие
     CompleteBooleanEvaluation :) что по умолчанию !НЕ!
     делается в разборе
      select 'OK' from rdb$database where not ((0 = null) or (0 = 1))
     , а вот при IN куда логичнее было-бы
      select 'OK' from rdb$database where (0 <> null) or (0 <> 1)

     И если это "придусмотренный" глюк именно в стандарте, то тот мужик
     который придумал стандарт явно не был эвреем ... :)

PS: Зарание сорри, я не антисемит, просто мне нравится (особенно в
    данном случае) привычка эвреев отвечать вопросом на вопрос ... :)

С уважением,
Константин Григорьевич.
===============


Ответить