Использование выражений в запросах. Выражения в Access.
Логические операторы
Логические (булевы) операторы используются для объединения результатов двух или более выражений сравнения в единое целое:
- And – конъюнкции (логического И);
- Or – дизъюнкции (логического ИЛИ);
- Not – логического отрицания;
- Хог – исключающего ИЛИ;
- Eqv – логической эквивалентности;
- Imp – логической импликации.
Они могут состоять только из выражений, возвращающих логические значения True, False или Null. В противном случае выполняется побитовое сравнение. Логические операторы всегда требуют двух операндов, за исключением Not – логического эквивалента унарного минуса.
В табл. 4.4-4.6 приведены результаты логических операторов Access в зависимости от значения операндов.
Таблица 4.4. Зависимость значения логических операторов от значения операндов.
A=True B=False | A=True B=True | A=False B=False | A=False B=True | |
A And В | False | True | False | False |
A Or В | True | True | False | True |
Not A | False | False | True | True |
А Хог В | True | False | False | True |
A Eqv В | False | True | True | False |
A Imp В | False | True | True | True |
Для всех логических операторов, кроме Imp, значение одного из операндов Null приводит к значению результата Null.
Таблица 4.5. Значения оператора Imp с Null-операндами.
A=Null B=False | A=Null B=True | A=False B=Null | A=True B=Null | A=Null B=Null | |
A Imp В | Null | True | True | Null | Null |
В случае если сравниваются два выражения и, по крайней мере, одно из них не является константой из множества (True, False, Null), логические операторы приводят к побитовому сравнению выражений-операндов (табл. 4.6).
Таблица 4.6. Значения логических операторов для однобитовых операндов.
Значения соответствующего бита результата | битА=1 бит В=0 | 6итА=1 битВ=1 | битА=0 бит В=0 | бит А=0 бит В=1 |
A And В | 0 | 1 | 0 | 0 |
A Or В | 1 | 1 | 0 | 1 |
Not A | 0 | 0 | 1 | 1 |
А Хог В | 1 | 0 | 0 | 1 |
A Eqv В | 0 | 1 | 1 | 0 |
A Imp В | 0 | 1 | 1 | 1 |