Операторы выражений
Последнее обновление: 28.10.2026Используйте операторы для вычисления значений, сравнения входных данных и объединения условий, когда Построение выражений.
К выражениям задач перемещения применяется следующая семантика. Выражения, выполняемые на облачной платформе данных, используют семантику этой платформы. Ставьте пробелы вокруг операторов и заключайте в кавычки текстовые константы и константы дат, например $HIRE_DATE < '2026-10-08'.
Арифметические операторы
| Оператор | Значение | Пример и результат |
|---|---|---|
+
|
Складывает два операнда. | 2 + 3 возвращает 5. |
-
|
Вычитает правый операнд из левого. Знак минуса в начале меняет знак значения на противоположный. | 5 - 2 возвращает 3. |
*
|
Перемножает операнды. | 3 * 4 возвращает 12. |
/
|
Делит левый операнд на правый. Целочисленное деление усекается в сторону нуля. Вещественный операнд сохраняет дробный результат. Деление на ноль возвращает NULL. | 7 / 2 возвращает 3; 7.0 / 2 возвращает 3.5. |
%
|
Преобразует оба операнда в целые числа и возвращает остаток от деления. Это не расчет процентов. | 7 % 3 возвращает 1. |
Операторы сравнения
Операции сравнения возвращают 1 для true и 0 для false. Обычные сравнения с NULL возвращают NULL; используйте IS или IS NOT для проверки отсутствующих значений.
| Оператор | Значение | Пример и результат |
|---|---|---|
=
|
Проверяет равенство. | 3 = 3 возвращает 1. |
!=
|
Проверяет неравенство. | 3 != 4 возвращает 1. |
<>
|
Альтернативный оператор неравенства. | 3 <> 3 возвращает 0. |
<
|
Проверяет, меньше ли левое значение. | 2 < 3 возвращает 1. |
<=
|
Проверяет условие «меньше или равно». | 3 <= 3 возвращает 1. |
>
|
Проверяет, больше ли левое значение. | 4 > 3 возвращает 1. |
>=
|
Проверяет условие «больше или равно». | 3 >= 3 возвращает 1. |
IS
|
Проверяет равенство, не возвращая NULL. Два значения NULL равны; значение NULL и значение, отличное от NULL, не равны. | NULL IS NULL возвращает 1. |
IS NOT
|
Проверяет неравенство без возврата NULL. | NULL IS NOT 3 возвращает 1. |
Логические и условные операторы
| Оператор | Значение | Пример и результат |
|---|---|---|
AND
|
Истинно, если оба условия истинны. Ложный операнд делает результат ложным, даже если другой операнд равен NULL. | (3 > 2) AND (4 < 3) возвращает 0. |
OR
|
True, если хотя бы одно из условий истинно. Операнд со значением true делает результат равным true, даже если другой операнд равен NULL. | (3 > 2) OR (4 < 3) возвращает 1. |
IN
|
Проверяет принадлежность к списку в круглых скобках. Если ни одно значение не совпадает и список содержит NULL, возвращает NULL. Пустой список возвращает 0, в том числе для левого операнда со значением NULL. | 2 IN (1, 2, 3) возвращает 1; 4 IN (1, NULL) возвращает NULL. |
CASE
|
Возвращает первую подходящую ветку. При наличии базового значения сравнивает его с каждым значением WHEN. Без него проверяется каждое условие WHEN. Использует ELSE, если ни одна ветвь не подошла, или NULL, если ELSE отсутствует. | CASE WHEN 5 > 3 THEN 'High' ELSE 'Low' END возвращает 'High'. CASE 2 WHEN 1 THEN 'One' WHEN 2 THEN 'Two' END возвращает 'Two'. |
Строковые операторы и операторы шаблонов
| Оператор | Значение | Пример и результат |
|---|---|---|
||
|
Объединяет текстовые значения. Операнд NULL возвращает NULL. | 'John' || ' ' || 'Smith' возвращает 'John Smith'. |
LIKE
|
Сравнивает левую строку с правым шаблоном. % соответствует нулю или более символов; _ соответствует одному. По умолчанию игнорирует регистр букв ASCII, но не различия регистра символов, отличных от ASCII. ESCAPE задает один символ для литеральных подстановочных знаков. |
'Alice' LIKE 'A%' возвращает 1. '10%' LIKE '10!%' ESCAPE '!' возвращает 1. |
GLOB
|
Сопоставление с учетом регистра с использованием шаблонов в стиле Unix. * соответствует нулю или более символам, ? соответствует одному, а скобки определяют набор символов. |
'file.csv' GLOB '*.csv' возвращает 1; 'File.CSV' GLOB '*.csv' возвращает 0. |
MATCH
|
Делегирует вызов определенной приложением функции match(). Требуется рабочая реализация; реализация SQLite по умолчанию вызывает ошибку. |
'Quarterly sales' MATCH 'sales' иллюстрирует синтаксис. Результат зависит от реализации приложения. |
REGEXP
|
Делегирует вызов определенной приложением функции regexp(). SQLite по умолчанию не предоставляет эту функцию. |
'ABC123' REGEXP '^[A-Z]+[0-9]+$' иллюстрирует синтаксис. Без реализации оценка завершается ошибкой. |
Побитовые операторы
Эти бинарные операторы работают с битами целых чисел, а не с логическими условиями. | означает побитовое ИЛИ, даже если редактор также относит его к категории логических.
| Оператор | Значение | Пример и результат |
|---|---|---|
<<
|
Сдвигает левое целое число влево на количество битов, указанное в правом операнде. | 3 << 1 возвращает 6. |
>>
|
Сдвигает левое целое число вправо на количество битов, указанное в правом операнде. | 8 >> 1 возвращает 4. |
&
|
Побитовое И: устанавливает бит результата, только если этот бит установлен в обоих операндах. | 6 & 3 возвращает 2. |
|
|
Побитовое ИЛИ: устанавливает бит результата, если этот бит установлен хотя бы в одном из операндов. | 6 | 3 возвращает 7. |
Порядок вычисления и пропущенные значения
Для приведенных выше бинарных операторов приоритет от высшего к низшему следующий: конкатенация; умножение, деление и остаток от деления; сложение и вычитание; побитовые операции; упорядоченные сравнения; проверка на равенство и соответствие шаблону; AND; затем OR. Операторы одного уровня вычисляются слева направо. Круглые скобки переопределяют этот порядок: (2 + 3) * 4 возвращает 20, тогда как 2 + 3 * 4 возвращает 14.
Большинство операторов возвращают NULL, если операнд равен NULL. Описанные выше исключения включают IS, IS NOT, а также конкретные случаи AND, OR и IN. Используйте $COALESCE, если отсутствующее значение должно иметь замену. См. Функции выражений.