Функции выражений
Последнее обновление: 28.10.2026Используйте функции для преобразования значений строк, обработки отсутствующих данных или получения связанных значений при создании выражений. Для получения подробных сведений см. раздел Построение выражений.
Приведенные ниже функции описывают выражения задач перемещения в управляемых SaaS задачах промежуточного хранения, промежуточного хранения в озере данных и репликации. Используйте сигнатуру функции, отображаемую в вашем редакторе. Квадратные скобки в сигнатурах указывают на необязательные аргументы; не вводите скобки.
Сведения о функциях CDC Storage и Streaming Transform см. в Функции преобразования. Для выражений хранилища, преобразования и витрин данных, выполняемых на облачной платформе данных, используйте синтаксис функций этой платформы.
Строковые функции
Префиксные и суффиксные функции применяются к началу или концу строки. Замена символов применяется к отдельным символам, а не сопоставляет префикс или суффикс целиком.
| Функция | Поведение и аргументы | Пример и результат |
|---|---|---|
$CONCAT(X, Y)
|
Объединяет две строки X и Y в указанном порядке. Возвращает NULL, если хотя бы один аргумент равен NULL. Используйте вложенные вызовы, чтобы объединить более двух строк. |
$CONCAT('My', 'Picture') возвращает 'MyPicture'. $CONCAT('My', NULL) возвращает NULL. |
$INSTR(string, substring)
|
Возвращает позицию первого вхождения substring в string с отсчетом от единицы. Возвращает 0, если подстрока не найдена. |
$INSTR('mystring', 'ing') возвращает 6. $INSTR('mystring', 'xyz') возвращает 0. |
$LENGTH(string)
|
Возвращает количество символов в string, а не его размер в байтах. |
$LENGTH('mystring') возвращает 8. |
$LOWER(string)
|
Возвращает копию string, в которой буквы ASCII преобразованы в нижний регистр. |
$LOWER('ABC') возвращает 'abc'. |
$LTRIM(string[, characters])
|
Удаляет символы из начала string. Необязательный аргумент characters — это набор символов для удаления, а не префикс. Если не указано, удаляет пробелы. |
$LTRIM(' orders') возвращает 'orders'. $LTRIM('@@orders', '@') возвращает 'orders'. |
$REMOVE_PREFIX(string, prefix)
|
Возвращает копию string, из которой удален указанный начальный prefix. |
$REMOVE_PREFIX('mystring', 'my') возвращает 'string'. |
$REMOVE_SUFFIX(string, suffix)
|
Возвращает копию string с удаленным указанным окончанием suffix. |
$REMOVE_SUFFIX('mystring', 'ing') возвращает 'mystr'. |
$REPLACE(string, pattern, replacement)
|
Заменяет каждое вхождение pattern в string на replacement. Все три аргумента обязательны. Используйте пустую строку замены, чтобы удалить совпадающий текст. |
$REPLACE('a-b-c', '-', '_') возвращает 'a_b_c'. $REPLACE('a-b', '-', '') возвращает 'ab'. |
$REPLACE_CHARS(string, chars, replacement)
|
Заменяет каждый символ, указанный в chars, символом, находящимся на той же позиции в replacement. Неуказанные символы остаются без изменений. Если позиция замены отсутствует, используется первый символ замены. |
$REPLACE_CHARS('mystring', 's', 'z') возвращает 'myztring'. $REPLACE_CHARS('abcde', 'abcd', '123') возвращает '1231e'. |
$REPLACE_PREFIX(string, prefix, replacement)
|
Заменяет начальные prefix в string на replacement. |
$REPLACE_PREFIX('mystring', 'my', 'new') возвращает 'newstring'. |
$REPLACE_SUFFIX(string, suffix, replacement)
|
Заменяет завершающий suffix в string на replacement вместо замены каждого вхождения. |
$REPLACE_SUFFIX('mystring', 'ing', 'new') возвращает 'mystrnew'. |
$RTRIM(string[, characters])
|
Удаляет символы с конца string. Необязательный аргумент characters представляет собой набор символов для удаления, а не суффикс. Если не указано, удаляет пробелы. |
$RTRIM('orders ') возвращает 'orders'. $RTRIM('orders@@', '@') возвращает 'orders'. |
$SUBSTR(string, start[, length])
|
Извлекает текст из string, начиная с позиции start с отсчетом от единицы. length указывает количество символов. Если опущено, возвращает оставшиеся символы. |
$SUBSTR('abcdef', 2, 3) возвращает 'bcd'. |
$TRIM(string[, characters])
|
Удаляет символы с обоих концов string. Необязательный аргумент characters представляет собой набор символов для удаления, а не подстроку. Если не указано, удаляет пробелы. |
$TRIM(' orders ') возвращает 'orders'. $TRIM('@#orders#@', '@#') возвращает 'orders'. |
$UNICODE(string)
|
Возвращает числовую кодовую точку Юникода первого символа в string. Аргумент должен быть строкой. |
$UNICODE('ABC') возвращает 65. |
$UPPER(string)
|
Возвращает копию string, в которой буквы ASCII преобразованы в верхний регистр. |
$UPPER('abc') возвращает 'ABC'. |
Числовые функции
Используйте эти функции для вычисления числовых значений для текущей строки. $MAX и $MIN сравнивают аргументы в пределах строки, а не значения между строками.
| Функция | Поведение и аргументы | Пример и результат |
|---|---|---|
$ABS(X)
|
Возвращает абсолютное значение числового аргумента X. |
$ABS(-20) возвращает 20. |
$MAX(arg1, arg2, ...)
|
Возвращает наибольшее значение среди переданных числовых аргументов. Укажите не менее двух аргументов. | $MAX(10, 4, 20, 9) возвращает 20. |
$MIN(arg1, arg2, ...)
|
Возвращает наименьшее значение среди переданных числовых аргументов. Укажите не менее двух аргументов. | $MIN(10, 4, 20, 9) возвращает 4. |
$RANDOM()
|
Возвращает псевдослучайное целое число со знаком. Не принимает аргументов. | $RANDOM() возвращает целое число, которое может быть отрицательным, нулевым или положительным. Его значение меняется между вызовами. |
$ROUND(value[, digits])
|
Округляет value до digits знаков после запятой и возвращает значение с плавающей запятой. Если digits опущен, округление выполняется до нуля знаков после запятой. |
$ROUND(3.141592, 3) возвращает 3.142. |
Функции LOB
Эти функции работают с большими двоичными объектами (BLOB). Аргумент size N задает байты, а не символы.
| Функция | Поведение и аргументы | Пример и результат |
|---|---|---|
$HEX(blob)
|
Возвращает шестнадцатеричный текст в верхнем регистре, представляющий байты blob. Числовой ввод сначала преобразуется в текст; результат не является машинным представлением числа. |
$HEX(X'4142') возвращает '4142'. |
$RANDOM_BLOB(N)
|
Возвращает N псевдослучайных байтов. Если N меньше 1, возвращает один байт. Не используйте эту функцию в качестве гарантии криптографической случайности. |
$RANDOM_BLOB(4) возвращает четырехбайтовый BLOB. Его значение меняется между вызовами. |
$ZERO_BLOB(N)
|
Возвращает BLOB, содержащий N нулевых байтов. |
$HEX($ZERO_BLOB(3)) возвращает '000000'. |
Функции проверки на NULL
| Функция | Поведение и аргументы | Пример и результат |
|---|---|---|
$COALESCE(X, Y, ...)
|
Возвращает первый аргумент, отличный от NULL, в порядке следования аргументов. Укажите не менее двух аргументов. Если все аргументы имеют значение NULL, результат равен NULL. Пустая строка не является значением NULL. | $COALESCE(NULL, 'Unknown') возвращает 'Unknown'. $COALESCE('', 'Unknown') возвращает пустую строку. |
$IFNULL(X, Y)
|
Возвращает X, если оно не равно NULL; в противном случае возвращает Y. Возвращает NULL, если оба аргумента равны NULL. Укажите ровно два аргумента. |
$IFNULL(NULL, 'Unknown') возвращает 'Unknown'. $IFNULL('Known', 'Unknown') возвращает 'Known'. |
$NULLIF(X, Y)
|
Возвращает NULL, если X и Y равны; в противном случае возвращает X. Укажите ровно два аргумента. |
$NULLIF('Unknown', 'Unknown') возвращает значение NULL. $NULLIF('Known', 'Unknown') возвращает 'Known'. |
Функции даты и времени
Укажите строку даты, времени или даты и времени, например '2026-10-08', '12:34:56' или '2026-10-08 12:34:56'. Заключайте константы дат в кавычки, чтобы дефисы не интерпретировались как вычитание.
| Функция | Поведение и аргументы | Пример и результат |
|---|---|---|
$DATE(date_string)
|
Возвращает дату из date_string в виде текста в формате YYYY-MM-DD. |
$DATE('2026-10-08') возвращает '2026-10-08'. |
$DATETIME(datetime_string)
|
Возвращает дату и время из datetime_string в виде текста в формате YYYY-MM-DD HH:MM:SS. |
$DATETIME('2026-10-08 12:34:56') возвращает '2026-10-08 12:34:56'. |
$JULIANDAY(datetime_string)
|
Возвращает дробное количество дней с полудня по Гринвичу 24 ноября 4714 года до н. э. Вычтите два значения юлианских дней, чтобы рассчитать количество прошедших дней. | $JULIANDAY('2000-01-01 12:00:00') возвращает 2451545.0. $JULIANDAY('2026-10-09') - $JULIANDAY('2026-10-08') возвращает 1.0. |
$STRFTIME(format, datetime_string)
|
Возвращает текст, отформатированный с помощью format. Формат указывается перед вводом даты или даты и времени. |
$STRFTIME('%Y-%m', '2026-10-08') возвращает '2026-10'. |
$TIME(time_string)
|
Возвращает время из time_string в виде текста в формате HH:MM:SS. |
$TIME('12:34:56') возвращает '12:34:56'. |
Подстановки формата
Объедините следующие подстановки с литеральными разделителями в $STRFTIME. Например, '%Y-%m-%d %H:%M:%S' форматирует и дату, и время. Неподдерживаемая подстановка возвращает NULL.
| Подстановка | Значение |
|---|---|
%d
|
День месяца, 01-31. |
%H
|
Час, 00-24. |
%f
|
Секунды с дробной частью, SS.SSS. |
%j
|
День года, 001-366. |
%J
|
Номер юлианского дня. |
%m
|
Месяц, 01-12. |
%M
|
Минута, 00-59. |
%s
|
Количество секунд, прошедших с 1 января 1970 года, 00:00:00 UTC. |
%S
|
Секунды, 00-59. |
%w
|
День недели, 0-6; воскресенье — 0. |
%W
|
Неделя года, 00-53; неделя начинается с понедельника. |
%Y
|
Год, 0000-9999. |
%%
|
Буквальный символ процента. |
Функции обогащения данных
Используйте подстановку, чтобы добавить связанное значение, например название отдела, из таблицы в исходной или целевой конечной точке.
| Функция | Поведение и аргументы | Пример и результат |
|---|---|---|
$SOURCE_LOOKUP(time_to_live, schema, table, expression, condition, condition_params)
|
Извлекает значение expression из table исходной конечной точки в schema для записи, соответствующей condition. Параметры условия предоставляют значения для его заполнителей по порядку. |
$SOURCE_LOOKUP(60, 'HR', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=:1', $DEPARTMENT_ID) извлекает соответствующее название отдела из источника. |
$TARGET_LOOKUP(time_to_live, schema, table, expression, condition, condition_params)
|
Извлекает значение expression из table целевой конечной точки в schema для записи, соответствующей condition. Параметры условия предоставляют значения для его заполнителей по порядку. |
$TARGET_LOOKUP(60, 'dbo', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=?', $DEPARTMENT_ID) извлекает соответствующее название отдела из целевого объекта. |
condition_params представляет собой список аргументов, разделенных запятыми, а не один аргумент-массив. Обе функции используют следующие параметры:
| Параметр | Значение |
|---|---|
time_to_live
|
Обязательное время жизни кэша, без значения по умолчанию. Укажите время жизни кэша в секундах, Короткий срок жизни обеспечивает обновление часто меняющихся данных. Более длительное время жизни снижает количество запросов к конечной точке, но может приводить к возврату кэшированных значений после изменения справочных данных. Используйте неограниченный срок действия только для данных, которые не изменяются. |
schema
|
Схема, содержащая таблицу подстановки, передаваемая в виде текста. |
table
|
Таблица в этой схеме, к которой выполняется запрос, передаваемая в виде текста. |
expression
|
SQL-выражение, выбирающее значение одного столбца, например 'DEPARTMENT_NAME' или 'PRICE * 1.2'. Используйте диалект SQL конечной точки, к которой выполняется обращение, а не синтаксис функций внешнего выражения. |
condition
|
SQL-условие, определяющее искомую запись. Используйте диалект и синтаксис плейсхолдеров конечной точки, к которой осуществляется доступ: например, :1 и :2 для Oracle или ? для Microsoft SQL Server. |
condition_params
|
Значения, привязанные к заполнителям условий, по порядку. Параметры столбцов, такие как $COMPANY_ID и $DEPARTMENT_ID, предоставляют значения из текущей строки. |
Проиндексируйте поля подстановки, чтобы снизить стоимость запроса. Выберите условие, определяющее нужную запись, и установите тип данных добавленного столбца в соответствии с выбранным значением.
$SOURCE_LOOKUP и $TARGET_LOOKUP не поддерживается. См. Тестирование выражений.Пример поиска исходного кода
Для источника Oracle следующее выражение извлекает DEPARTMENT_NAME из HR.DEPARTMENTS и кэширует результат на 60 секунд:
$SOURCE_LOOKUP(60, 'HR', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=:1', $DEPARTMENT_ID)
Если текущая строка содержит DEPARTMENT_ID 10, а соответствующая запись подстановки содержит 'Sales', результатом будет 'Sales'.
Для источника Microsoft SQL Server используйте его синтаксис заполнителей условий. В этом примере значения компании и отдела связываются в указанном порядке:
$SOURCE_LOOKUP(60, 'dbo', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'COMPANY_ID=? AND DEPARTMENT_ID=?', $COMPANY_ID, $DEPARTMENT_ID)
Пример поиска целевого объекта
Для целевой системы Microsoft SQL Server выполните запрос к целевой таблице, используя соответствующий диалект SQL:
$TARGET_LOOKUP(60, 'dbo', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=?', $DEPARTMENT_ID)
Если целевая запись подстановки для отдела 10 содержит 'Sales', результатом для входного значения 10 будет 'Sales'.
Функции операций
| Функция | Поведение и аргументы | Пример и результат |
|---|---|---|
$OPERATION_INDICATOR(value_on_delete, value_on_update, value_on_insert)
|
Возвращает флаг, указанный вами для каждой исходной операции. Порядок аргументов: удаление, обновление, затем вставка. Используйте отдельный столбец для хранения флагов и указывайте значения флагов, соответствующие его типу данных. | $OPERATION_INDICATOR('Deleted', 'Updated', 'Inserted') возвращает 'Updated' для обновления. |
В Qlik Replicate эта функция также изменяет обработку удаления: она сохраняет соответствующую целевую запись и помечает ее с помощью value_on_delete. Это поведение при обработке удалений требует подтверждения для Qlik Talend Cloud Data Integration.
Логические функции
| Функция | Поведение и аргументы | Пример и результат |
|---|---|---|
$IFF(boolean_expression, true_value, false_value)
|
Возвращает true_value, если boolean_expression принимает значение true; в противном случае возвращает false_value. Сначала укажите условие, а затем два результирующих значения. |
$IFF(10 > 5, 'High', 'Low') возвращает 'High'. $IFF(3 > 5, 'High', 'Low') возвращает 'Low'. |
Другие функции
| Функция | Поведение и аргументы | Пример и результат |
|---|---|---|
$LIKE(pattern, string[, escape_character])
|
Возвращает 1 при совпадении или 0 при отсутствии совпадения; при входном значении NULL возвращает NULL. % соответствует нулю или более символам; _ соответствует одному. По умолчанию при сопоставлении не учитывается регистр букв ASCII. Необязательный escape-символ состоит из одного символа. Шаблон указывается первым, в отличие от оператора LIKE. |
$LIKE('A%', 'Alice') возвращает 1. $LIKE('10!%', '10%', '!') возвращает 1. |
$TYPEOF(expression)
|
Возвращает класс хранения значения: 'null', 'integer', 'real', 'text' или 'blob'. Это не настроенный тип выходного столбца. |
$TYPEOF(12.5) возвращает 'real'. |
Хеш-функции
| Функция | Поведение и аргументы | Пример и результат |
|---|---|---|
$SHA256(string)
|
Возвращает шестнадцатеричный хэш SHA-256 входной строки. | $SHA256('abc') возвращает ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad. |
Хеш — это не шифрование. Предсказуемые входные значения по-прежнему можно идентифицировать путем сравнения их хешей.