Приоритет логических операций в запросе
Приоритет логических операций — это правило, определяющее, в каком порядке вычисляются части сложного условия в запросе. Сначала выполняется отрицание, затем логическое И, а последним — логическое ИЛИ.
Сложное условие используется в составном запросе, когда нужно объединить несколько простых условий. Например, требуется выбрать записи, для которых поле «Класс» равно 9 и поле «Баллы» больше 70, или записи с особым признаком. Без понимания приоритета легко получить другой результат.
Порядок выполнения
- Отрицание НЕ — меняет значение условия на противоположное. Подробно это рассматривается в статье отрицание условия.
- Логическое И — результат истинен только тогда, когда истинны оба соединённых условия.
- Логическое ИЛИ — результат истинен, если истинно хотя бы одно из соединённых условий.
Рассмотрим условие: A И B ИЛИ C. Сначала вычисляется A И B, затем полученный результат объединяется с C: (A И B) ИЛИ C. Если нужно сначала проверить B ИЛИ C, записывают A И (B ИЛИ C). Скобки особенно важны, когда условия относятся к разным полям.
Приоритет — не то же самое, что порядок записи слева направо. В выражении A ИЛИ B И C сначала выполняется B И C, хотя операция ИЛИ написана раньше. Если требуется другой порядок, используйте скобки.
Как будет вычисляться условие НЕ A И B ИЛИ C?
Главное
- Стандартный приоритет: НЕ, затем И, затем ИЛИ.
- Скобки выполняются первыми и позволяют явно задать нужный порядок.
- В выражении без скобок нельзя считать операции выполненными просто слева направо.