Перейти к основному содержимому
Версия: 7.0

Операторы сравнения (=, >, <, ...)

Операторы сравнения создают свойства, возвращаемым значением которых является результат операции сравнения. Значения созданных свойств принадлежат встроенному классу BOOLEAN.

В платформе на данный момент поддерживаются следующие операторы сравнения:

ОператорНазваниеОписаниеПримерРезультат
= или ==РавенствоПринимает два операнда на вход, возвращает TRUE, если операнды равны5 = 5 или 5 == 5TRUE
!=НеравенствоПринимает два операнда на вход, возвращает TRUE, если операнды не равны3 != 5TRUE
>, <Строгое сравнениеПринимают два операнда на вход, возвращают TRUE, если условие строгого сравнения выполняется3 > 5NULL
>=, <=Нестрогое сравнениеПринимают два операнда на вход, возвращают TRUE, если условие нестрогого сравнения выполняется4 <= 5TRUE
LIKEСравнение с шаблономПринимает два операнда на вход: строку и шаблон. Возвращает TRUE, если строка соответствует шаблону'abc' LIKE 'a%'TRUE
MATCHПолнотекстовый поискПринимает слева строку или TSVECTOR, справа строку или TSQUERY. Для строковых операндов выполняет полнотекстовый поиск и дополнительную проверку на вхождение подстроки, а для подготовленных TSVECTOR / TSQUERY использует эти значения напрямую'abc def' MATCH 'abc'TRUE

Результат сравнения всегда равен либо TRUE, либо NULL, но никогда FALSE: если условие сравнения не выполняется, результатом является NULL. Во всех операторах, если один из операндов NULL, результат также будет равняться NULL.

Для операторов равенства и упорядочивания оба операнда должны принадлежать совместимым классам — встроенным классам одного семейства либо пользовательским классам, связанным наследованием.

Язык

Описание общих операторов сравнения.
Для создания свойства, сравнивающего строку с шаблоном, используется оператор LIKE. Для полнотекстового поиска используется оператор MATCH.

Примеры

equalBarcodes = barcode(a) == barcode(b);
outOfIntervalValue1(value, left, right) = value < left OR value > right;
outOfIntervalValue2(value, left, right) = NOT (value >= left AND value <= right);
isPhoneNumber(value) = value LIKE '(___) ___-____';