# 式演算子

[式の構築](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Building-expressions.htm) の場合、演算子を使用して値を計算し、入力を比較し、条件を結合します。

移動タスク式には、次のセマンティクスが適用されます。クラウドデータ プラットフォームで実行される式は、そのプラットフォームのセマンティクスを使用します。演算子の周りにスペースを入れ、テキストと日付の定数を引用符で囲みます。例: `$HIRE_DATE < '2026-10-08'`。

## 算術演算子

数値に対する算術演算子

| 演算子 | 意味 | 例と結果 |
| --- | --- | --- |
| `+` | 2 つのオペランドを加算します。 | `2 + 3` は `5` を返します。 |
| `-` | 左オペランドから右オペランドを減算します。先頭のマイナスは値を負にします。 | `5 - 2` は `3` を返します。 |
| `*` | オペランドを乗算します。 | `3 * 4` は `12` を返します。 |
| `/` | 左オペランドを右オペランドで除算します。整数除算はゼロ方向に切り捨てられます。実数オペランドは小数結果を保持します。ゼロ除算は NULL を返します。 | `7 / 2` は `3` を返し、`7.0 / 2` は `3.5` を返します。 |
| `%` | 両方のオペランドを整数に変換し、除算の剰余を返します。これはパーセンテージ計算ではありません。 | `7 % 3` は `1` を返します。 |

## 比較演算子

比較は、真の場合は 1 を、偽の場合は 0 を返します。NULL との通常の比較は NULL を返します。欠損値をテストするには、`IS` または `IS NOT` を使用します。

2 つの値を比較する

| 演算子 | 意味 | 例と結果 |
| --- | --- | --- |
| `=` | 等価性をテストします。 | `3 = 3` は `1` を返します。 |
| `!=` | 不等性をテストします。 | `3 != 4` は `1` を返します。 |
| `<>` | 代替の不等号演算子。 | `3 <> 3` は `0` を返します。 |
| `<` | 左の値が小さいかどうかをテストします。 | `2 < 3` は `1` を返します。 |
| `<=` | 以下であるかをテストします。 | `3 <= 3` は `1` を返します。 |
| `>` | 左の値が大きいかどうかをテストします。 | `4 > 3` は `1` を返します。 |
| `>=` | 以上であるかをテストします。 | `3 >= 3` は `1` を返します。 |
| `IS` | NULL を返さずに等価性を確認します。2 つの NULL 値は等しく、NULL 値と非 NULL 値は等しくありません。 | `NULL IS NULL` は `1` を返します。 |
| `IS NOT` | NULL を返さずに不等性をテストします。 | `NULL IS NOT 3` は `1` を返します。 |

## 論理演算子と条件演算子

条件の組み合わせと値の選択

| 演算子 | 意味 | 例と結果 |
| --- | --- | --- |
| `AND` | 両方の条件が真である場合に真。偽のオペランドがあると、他のオペランドが NULL であっても、結果は偽になります。 | `(3 > 2) AND (4 < 3)` は `0` を返します。 |
| `OR` | いずれかの条件が真である場合に真。真のオペランドは、他のオペランドが 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 を使用します。または、ELSE がない場合、NULL を使用します。 | `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` | 左の文字列と右のパターンを比較します。`%` はゼロ個以上の文字に一致し、`_` は 1 つの文字に一致します。デフォルトでは ASCII 文字の大文字/小文字を無視しますが、非 ASCII 文字のケースの違いは無視しません。ESCAPE はリテラル ワイルドカードの 1 文字を指定します。 | `'Alice' LIKE 'A%'` は `1` を返します。`'10%' LIKE '10!%' ESCAPE '!'` `1` を返します。 |
| `GLOB` | Unix スタイルのパターンを使用した、大文字と小文字を区別するマッチング。`*` は 0 個以上の文字に一致します。`?` は 1 つに一致し、角かっこは文字セットを定義します。 | `'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]+$'` は構文を示しています。実装がない場合、評価は失敗します。 |

## ビット演算子

これらの二項演算子は、論理条件ではなく、整数のビットに対して作用します。`|` は、エディターが論理カテゴリに分類している場合でも、ビット単位の OR を意味します。

整数ビット演算子

| 演算子 | 意味 | 例と結果 |
| --- | --- | --- |
| `<<` | 左の整数を、右オペランドのビット数だけ左にシフトします。 | `3 << 1` は `6` を返します。 |
| `>>` | 左の整数を、右オペランドのビット数だけ右にシフトします。 | `8 >> 1` は `4` を返します。 |
| `&` | ビット単位の AND: 両方のオペランドでそのビットがセットされている場合にのみ、結果のビットをセットします。 | `6 & 3` は `2` を返します。 |
| `\|` | ビット単位の OR: いずれかのオペランドでそのビットがセットされている場合に、結果のビットをセットします。 | `6 \| 3` は `7` を返します。 |

## 評価順序と欠損値

上記の二項演算子では、優先順位は高い順に、連結、乗算・除算・剰余、加算・減算、ビット演算、順序比較、等価比較とパターン テスト、AND、OR の順です。同じレベルの演算子は左から右へ評価されます。括弧はこの順序を上書きします: `(2 + 3) * 4` は `20` を返します。一方 `2 + 3 * 4` は `14` を返します。

ほとんどの演算子は、オペランドが NULL の場合に NULL を返します。上記の例外には `IS`、`IS NOT`、および特定の `AND`、`OR`、および `IN` のケースが含まれます。欠損値に置換が必要な場合、`$COALESCE` を使用します。「[式関数](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Expression-functions.htm)」を参照してください。