式関数
最終更新日時: 2026/10/27式を作成する際に行の値を変換したり、欠損データを処理したり、関連する値を取得したりするには、関数を使用します。詳細については、「式の構築」を参照してください。
以下の関数は、SaaS マネージド ランディング、レイク ランディング、レプリケーション タスクにおける移動タスクの式を説明します。エディターに表示されている関数シグネチャを使用します。シグネチャ内の角括弧はオプションの引数を示します。角括弧は入力しないでください。
CDC ストレージおよびストリーミング変換関数については、「変換関数」を参照してください。ストレージ、変換、データ マートの式がクラウドデータ プラットフォームで実行される場合は、そのプラットフォームの関数構文を使用します。
文字列関数
プレフィックス関数とサフィックス関数は、文字列の先頭または末尾に作用します。文字の置換は、プレフィックスやサフィックス全体を照合するのではなく、個々の文字に対して適用されます。
| 関数 | 動作と引数 | 例と結果 |
|---|---|---|
$CONCAT(X, Y)
|
2 つの文字列 X と Y を、この順序で結合します。いずれかの引数が NULL である場合、NULL を返します。2 つ以上の文字列を結合するには、呼び出しをネストします。 |
$CONCAT('My', 'Picture') は 'MyPicture' を返します。$CONCAT('My', NULL) は NULL を返します。 |
$INSTR(string, substring)
|
string 内での substring の最初の出現位置を、1 から数えた位置で返します。部分文字列が見つからない場合、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)
|
指定された末尾の suffix を削除した、string のコピーを返します。 |
$REMOVE_SUFFIX('mystring', 'ing') は 'mystr' を返します。 |
$REPLACE(string, pattern, replacement)
|
string 内の pattern のすべての出現箇所を replacement で置き換えます。3 つの引数すべてが必須です。一致するテキストを削除するには、空の置換文字列を使用します。 |
$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)
|
string 内の先頭の prefix を replacement で置き換えます。 |
$REPLACE_PREFIX('mystring', 'my', 'new') は 'newstring' を返します。 |
$REPLACE_SUFFIX(string, suffix, replacement)
|
すべての出現箇所を置き換えるのではなく、string 内の末尾の suffix を replacement に置き換えます。 |
$REPLACE_SUFFIX('mystring', 'ing', 'new') は 'mystrnew' を返します。 |
$RTRIM(string[, characters])
|
string の末尾から文字を削除します。オプションの characters 引数は、サフィックスではなく、削除する文字のセットです。省略した場合、スペースを削除します。 |
$RTRIM('orders ') は 'orders' を返します。$RTRIM('orders@@', '@') は 'orders' を返します。 |
$SUBSTR(string, start[, length])
|
string から、1 を基点とする位置 start からテキストを抽出します。length は文字数を指定します。省略した場合、残りの文字を返します。 |
$SUBSTR('abcdef', 2, 3) は 'bcd' を返します。 |
$TRIM(string[, characters])
|
string の両端から文字を削除します。オプションの characters 引数は、部分文字列ではなく、削除する文字のセットです。省略した場合、スペースを削除します。 |
$TRIM(' orders ') は 'orders' を返します。$TRIM('@#orders#@', '@#') は 'orders' を返します。 |
$UNICODE(string)
|
string の最初の文字の数値 Unicode コード ポイントを返します。引数は文字列である必要があります。 |
$UNICODE('ABC') は 65 を返します。 |
$UPPER(string)
|
ASCII 文字を大文字に変換した string のコピーを返します。 |
$UPPER('abc') は 'ABC' を返します。 |
数値関数
現在の行の数値を計算するには、これらの関数を使用します。$MAX と $MIN は、行内の引数を比較し、行をまたいだ値は比較しません。
| 関数 | 動作と引数 | 例と結果 |
|---|---|---|
$ABS(X)
|
数値の引数 X の絶対値を返します。 |
$ABS(-20) は 20 を返します。 |
$MAX(arg1, arg2, ...)
|
指定された数値引数の中で最大の値を返します。少なくとも 2 つの引数を指定してください。 | $MAX(10, 4, 20, 9) は 20 を返します。 |
$MIN(arg1, arg2, ...)
|
指定された数値引数の中で最小の値を返します。少なくとも 2 つの引数を指定してください。 | $MIN(10, 4, 20, 9) は 4 を返します。 |
$RANDOM()
|
擬似乱数の符号付き整数を返します。引数を取りません。 | $RANDOM() は、負、ゼロ、または正の整数を返します。その値は呼び出しごとに異なります。 |
$ROUND(value[, digits])
|
value を小数点以下 digits 桁に丸め、浮動小数点値を返します。digits が省略された場合、小数点以下 0 桁に丸められます。 |
$ROUND(3.141592, 3) は 3.142 を返します。 |
LOB 関数
これらの関数はバイナリ ラージ オブジェクト (BLOB) を扱います。サイズ引数 N はバイト単位で指定され、文字単位ではありません。
| 関数 | 動作と引数 | 例と結果 |
|---|---|---|
$HEX(blob)
|
blob のバイトを表す大文字の 16 進数テキストを返します。数値入力はまずテキストに変換されます。結果は、その数値の機械表記ではありません。 |
$HEX(X'4142') は '4142' を返します。 |
$RANDOM_BLOB(N)
|
N 擬似乱数バイトを返します。N が 1 未満の場合、1 バイトを返します。この関数を暗号論的ランダム性の保証として使用しないでください。 |
$RANDOM_BLOB(4) は 4 バイトの BLOB を返します。その値は呼び出しごとに異なります。 |
$ZERO_BLOB(N)
|
N ゼロ バイトを含む BLOB を返します。 |
$HEX($ZERO_BLOB(3)) は '000000' を返します。 |
NULL チェック関数
| 関数 | 動作と引数 | 例と結果 |
|---|---|---|
$COALESCE(X, Y, ...)
|
引数順で、最初の NULL 以外の引数を返します。少なくとも 2 つの引数を指定してください。すべての引数が NULL の場合、結果は NULL です。空の文字列は NULL ではありません。 | $COALESCE(NULL, 'Unknown') は 'Unknown' を返します。$COALESCE('', 'Unknown') は空の文字列を返します。 |
$IFNULL(X, Y)
|
NULL でない場合は X を返します。そうでない場合は Y を返します。両方の引数が NULL の場合、NULL を返します。引数をちょうど 2 つ指定してください。 |
$IFNULL(NULL, 'Unknown') は 'Unknown' を返します。$IFNULL('Known', 'Unknown') は 'Known' を返します。 |
$NULLIF(X, Y)
|
X と Y が等しい場合は NULL を返します。それ以外の場合は、X を返します。引数をちょうど 2 つ指定してください。 |
$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)
|
紀元前 4714 年 11 月 24 日のグリニッジ正午からの経過日数を、端数を含めて返します。2 つのユリウス日を減算して、経過日数を算出します。 | $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
|
1970 年 1 月 1 日 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)
|
condition に一致するレコードについて、ソース エンドポイントの table から schema で expression の値を取得します。条件パラメーターは、そのプレースホルダーに順番に値を供給します。 |
$SOURCE_LOOKUP(60, 'HR', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=:1', $DEPARTMENT_ID) は、ソースから一致する部署名を取得します。 |
$TARGET_LOOKUP(time_to_live, schema, table, expression, condition, condition_params)
|
condition に一致するレコードに対して、ターゲット エンドポイントの schema における table から、expression の値を取得します。条件パラメーターは、そのプレースホルダーに順番に値を供給します。 |
$TARGET_LOOKUP(60, 'dbo', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=?', $DEPARTMENT_ID) は、ターゲットから一致する部署名を取得します。 |
condition_params は、単一の配列引数ではなく、コンマ区切りの引数リストを表します。両方の関数は次のパラメーターを使用します。
| パラメータ | 意味 |
|---|---|
time_to_live
|
必須キャッシュの有効期間、デフォルト値なし。キャッシュの有効期間を秒単位で指定します。 有効期間が短いと、頻繁に変更されるデータが更新されます。有効期間を長くすると、エンドポイントへのクエリは減少しますが、ルックアップ データが変更された後でもキャッシュされた値が返される可能性があります。変更されないデータにのみ、有効期限なしを使用してください。 |
schema
|
ルックアップ テーブルを含むスキーマ。テキストとして提供されます。 |
table
|
テキストとして提供される、そのスキーマ内でクエリを実行するテーブル |
expression
|
1 つの列の値を選択する SQL 式。例: 'DEPARTMENT_NAME' または 'PRICE * 1.2'。アクセスするエンドポイントの SQL 方言を使用し、外側の式の関数構文は使用しないでください。 |
condition
|
ルックアップ レコードを特定する SQL 条件。アクセスされたエンドポイントの方言とプレースホルダー構文を使用します。例: :1 および :2 (Oracleの場合)、または? (Microsoft SQL Server の場合)。 |
condition_params
|
条件プレースホルダーにバインドされた値 (順序通り)。列パラメーター (例: $COMPANY_ID および $DEPARTMENT_ID) は、現在の行から値を供給します。 |
クエリ コストを削減するために、ルックアップ フィールドにインデックスを作成してください。目的のレコードを識別する条件を選択し、追加された列のデータ型を選択された値と一致するように設定します。
ソース ルックアップの例
Oracle ソースの場合、次の式は HR.DEPARTMENTS から DEPARTMENT_NAME を取得し、結果を 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)
|
boolean_expression が true と評価される場合、true_value を返します。それ以外の場合は、false_value を返します。最初に条件を指定し、その後に 2 つの結果値を指定します。 |
$IFF(10 > 5, 'High', 'Low') は 'High' を返します。$IFF(3 > 5, 'High', 'Low') は 'Low' を返します。 |
その他の関数
| 関数 | 動作と引数 | 例と結果 |
|---|---|---|
$LIKE(pattern, string[, escape_character])
|
一致した場合は 1 を、一致しなかった場合は 0 を返します。NULL 入力は NULL を生成します。% は 0 個以上の文字に一致します。_ は 1 つの文字に一致します。デフォルトでは、マッチングで ASCII の大文字と小文字が無視されます。オプションのエスケープは 1 文字です。LIKE 演算子とは異なり、パターンが先になります。 |
$LIKE('A%', 'Alice') は 1 を返します。$LIKE('10!%', '10%', '!') 1 を返します。 |
$TYPEOF(expression)
|
値のストレージ クラスを返します: 'null'、'integer'、'real'、'text'、または 'blob'。これは、設定されている出力列の型ではありません。 |
$TYPEOF(12.5) は 'real' を返します。 |
ハッシュ関数
| 関数 | 動作と引数 | 例と結果 |
|---|---|---|
$SHA256(string)
|
入力文字列の 16 進数の SHA-256 ハッシュを返します。 | $SHA256('abc') は ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad を返します。 |
ハッシュは暗号化ではありません。予測可能な入力値は、ハッシュを比較することで引き続き特定できます。