172 похожих чатов

Вопрос по ms sql может кто знает точно, там есть

фиксированный порядок, слева направо или с право налево, или это по разному может быть:

where fun1(поле1) = 1 and fun2(поле2) = 1 and fun3(поле1) = 1

в итоге сперва выполнится функция 1, если она ок, выполнится функция 2, если вторая ОК то пойдет функция 3 и если та ОК, то строка попадает в выборку

или иначе?

3 ответов

19 просмотров

Если по стандарту, порядок вычисления предикатов не определён, т.е., СУБД решает, какое из условий селективнее. Попробуйте обернуть в подзапрос и тяжелые функции снаружи вызвать (хотя это не гарантия, но формально означает, что снаружи функции должны вызываться по строкам, отобранным подзапросом). Кстати в PostgreSQL СУБД обязана будет вызвать функции, если они определены как volatile, независимо от порядка предикатов.

> там есть фиксированный порядок Не гарантируется, как и в любой реализации SQL. IMNSHO, кто этого не знает — не знает SQL даже на "среднем" уровне (потому что иногда будет писать запросы, которые "падают" от любого изменения данных, или при изменении версии СУБД (даже minor или как там эти версии называются в данной СУБД), или даже от изменения настроек). И конкретно в MS SQL фиксированного порядка точно нет, да. > и когда привык к постгресу ms sql начинает разрдражать очень сильно То, что PostgreSQL реже ведёт себя таким образом — это скорее его дефект, понимаете? ;)

Похожие вопросы

Обсуждают сегодня

Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
9
> Копаем глубже > Следующий момент был, когда я спросил его, знает ли он JavaScript. Он ответил, что его учили работать с C#. Я тоже в университете писал на C#, но даже там мн...
Oleg Volkov
4
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
7
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
Карта сайта