Логические и булевы операции
Логическое выражение — это выражение, результатом вычисления которого является значение типа Булево. В логических выражениях могут использоваться приведенные ниже операции.
Операции сравнения
Сравнение на равенство
операнд-1 == операнд-2
Применима к значениям любых типов.
Если значение операнд-1 равно значению операнд-2, то результатом операции будет значение Истина.
Сравнение на неравенство
операнд-1 != операнд-2
Применима к значениям любых типов.
Если значение операнд-1 не равно значению операнд-2, то результатом операции будет значение Истина.
Сравнение на строго е больше
операнд-1 > операнд-2
Применима только к значениям одинаковых типов.
Если значение операнд-1 строго больше операнд-2, то результатом операции будет значение Истина.
Сравнение на нестрогое больше
операнд-1 >= операнд-2
Применима только к значениям одинаковых типов.
Если значение операнд-1 больше или равно операнд-2, то результатом операции будет значение Истина.
Сравнение на строгое меньше
операнд-1 < операнд-2
Пр именима только к значениям одинаковых типов.
Если значение операнд-1 строго меньше операнд-2, то результатом операции будет значение Истина.
Сравнение на нестрогое меньше
операнд-1 <= операнд-2
Применима только к значениям одинаковых типов.
Если значение операнд-1 меньше или равно операнд-2, то результатом операции будет значение Истина.
Операции сравнения без контр оля типа
Операции сравнения без контроля типов могут быть полезны для полей составного типа. Если Поле1 имеет тип Число | Строка, а Поле2 имеет тип Число | Булево, то операции обычного сравнения всегда будут выдавать ошибку, даже если оба поля имеют числовое значение. Операции сравнения без контроля типов позволяют выполнить такое сравнение. При условии, что оба операнда имеют одинаковый тип, применяются стандартные правила сравнения значений соответствующего типа.
При сравнении значений разных типов сначала анализируются их типы. В языке запросов определен строгий порядок следования примитивных типов при сортировке по возрастанию:
Null,Неопределено,Булево,Число,ДатаВремя,Момент,Строка,Байты,Тип,УникальныйИдентификатор,Дата,Время,Длительность.
Если не сказано иного, в языке запросов любое выражение с участием NULL возвращает NULL. Для проверки значения на NULL используйте операции ЕСТЬ NULL и ОТЛИЧАЕТСЯ ОТ.
Например, результатом сравнения РеквизитСтрока >| 5, в котором сравнивается поле типа Строка и число, будет значение Истина, т. к. тип Строка больше типа Число.
Все остальные типы считаются больше примитивных, а между собой сравниваются по внутреннему идентификатору типа, который недоступен из среды разработки и стабилен только в рамках одного экземпляра приложения.
Сравнение на строгое больше
операнд-1 >| операнд-2
Если значение операнд-1 строго больше операнд-2, то результатом операции будет значение Истина.
Сравнение на нестрогое больше
операнд-1 >=| операнд-2
Если значение операнд-1 больше или равно операнд-2, то результатом операции будет значение Истина.
Сравнение на строгое меньше
операнд-1 <| операнд-2
Если значение операнд-1 строго меньше операнд-2, то результатом операции будет значение Истина.
Сравнение на нестрогое меньше
операнд-1 <=| операнд-2
Если значение операнд-1 меньше или равно операнд-2, то результатом операции будет значение Истина.
Булевы операции
Результаты логических выражений и значения типа Булево могут участвовать в булевых операциях.
Логическое «И»
выражение-1 и выражение-2
Возвращает значение Истина, когда результат вычисления каждого выражения равен Истина.
Логическое «ИЛИ»
выражение-1 или выражение-2
Возвращает значение Истина, когда результат вычисления хотя-бы одного выражения равен Истина.
Логическое «НЕ»
не выражение
Возвращает значение Истина в том случае, если результат вычисления выражение равен Ложь.