Условие в SQL-запросе

Valtokru

Есть запрос на MSSQL содержащий такую конструкцию:
where ( усл 1 ) or ( усл 2 )
Будет ли проверяться второе условие если первое верно и можно идти дальше?

pitrik2

скорей всего да
вряд ли билл гейтс извратился
а вообще ищи тут:
http://www.microsoft.com/downloads/details.aspx?FamilyId=A6F79CB1-A420-445F-8A4B-BD77A7DA194B&displaylang=en
)

6yrop

то что помню из лекций (но совсем не уверен в этом):
по стантарту все условия всегда проверяются, и Бил тут не причем

Valtokru

Спасибо, а жаль...
Просто, насколько я знаю, в продвинутых языках это не делается. Надеялся, что SQL из их числа.

6yrop

на сколько я помню, Кузнецов как-то коментировал, почему в языках программирование делают так, а SQL не делают, т.е. это сделано осознано, но я не мопню почему

Aleksei66

Не знаю, что там Кузнецов говорил, но это наверняка из-за того, что в SQL логика не двоичная, а троичная - есть NULL.

6yrop

может быть может быть

durka82

а чему равно true or null?

stm5643616

TRUE


DECLARE
b BOOLEAN;
BEGIN
b := TRUE OR NULL;
IF b = TRUE THEN
dbms_output.put_line('b = true');
ELSIF b IS NULL THEN
dbms_output.put_line('b is null');
END IF;
END;


Output:
b = true

stm8855194

true

durka82

Предлагаю устроить голосовалку
Оставить комментарий
Имя или ник:
Комментарий: