Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 46 47 48 49 50 51 52 53 54 [55]
 Re: Конкурс идей про Firebird  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 3391
hvlad, по скорости выполнения и результату на 4-ке ничем.
Не знаю как именно в Огнептице, но так повелось, что для OR, как правило, не задан порядок вычисления аргументов и в зависимости от оптимизации порядок вычисления аргументов может быть изменён, а AND считается ленивым с порядком вычисления аргументов слева направо, так что если при вычислении первого аргумента результат FALSE, то второй аргумент не вычисляется.

На мой взгляд, запись с Coalesce более лаконична, хотя тут можно спорить, так как на NULL проверяется не :smthn, а результат вычисления table.field = :smthn, что равносильно:
CASE (table.field = :smthn) WHEN FALSE THEN FALSE ELSE TRUE END


Сообщение было отредактировано: 31 июл 20, 09:35
31 июл 20, 09:37    [22175944]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
hvlad
Member

Откуда:
Сообщений: 10993
rdb_dev
по скорости выполнения и результату на 4-ке ничем.
О чём тогда говорить ?

rdb_dev
порядок вычисления аргументов
Насколько я помню, он не фиксирован стандартом SQL и, более того, оптимизатор имеет право вычислять их в том порядке, в котором посчитает нужным.
Не буду утверждать, что наш настолько продвинут, но ничто не стоит на месте.

Кем там и что чем считается - его личное дело, мы не вмешиваемся.
31 июл 20, 10:19    [22175966]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 46 47 48 49 50 51 52 53 54 [55]
Все форумы / Firebird, InterBase Ответить