Loading
ただいま大変多くのお問い合わせをいただいており、ご連絡までにお時間を頂戴しております続きを読む
Salesforce Data 360 について
ストリーミングデータ変換の関数と演算子

ストリーミングデータ変換の関数と演算子

ストリーミングデータ変換 SQL ステートメントでは、次の関数と演算子を使用できます。

カテゴリ 関数名 説明
テーブル JSON_TABLE(field, rootPath COLUMNS (list) alias)

JSON 文字列値から、指定された列を持つテーブルに値を抽出します。複数のテーブルを作成するために使用できます。

関数内では次の値を使用します。

  • Field (string) — JSON 値が格納されている入力オブジェクトの項目の名前。JSON 文字列値を返す任意の式を使用できます。
  • rootPath (path) — JSON オブジェクトのプロパティを特定する JSON パス式。
  • List (ColumnName Type PATH Path) — テーブル内にある列のカンマ区切りリスト。
    • ColumnName (string) — JSON_TABLE 呼び出しから返されたテーブル内の列の名前。
    • Type —出力されるデータの型。有効な値は TEXT または NUMBER です。
    • Path (path) — ルートパスに基づいて JSON オブジェクト内のプロパティを特定する JSON パス式。
  • Alias (string) — 作成されるテーブルの名前。

SELECT 
  customers_with_orders__dll.order_id__c as order_id__c, 
  customers.customer as customer__c
FROM customers_with_orders__dll, JSON_TABLE(
  customers_with_orders__dll.json_data__c, '$' COLUMNS (
 	customer TEXT PATH '$.customer'
	)
) customers
SELECT 
  customers_with_orders__dll.order_id__c as order_id__c, 
  items.item_name as item_name__c,
  items.item_price as item_price__c
FROM customers_with_orders__dll, JSON_TABLE(
  customers_with_orders__dll.json_data__c, '$.items[*]' COLUMNS (
    item_name TEXT PATH '$.name',
    item_price NUMBER PATH '$.price'
  )
) items
Text CONCAT() 指定された値の連結文字列を返します。2 つ以上の文字列または項目の API 参照名を受け入れます。
Text COALESCE 空でないリストの最初の値を返します。
テキスト TRIM(text) 単語間のスペース 1 つを除き、テキストからすべてのスペースを削除します。
テキスト RTRIM(text) 末尾からすべてのスペースを削除します。
テキスト LOWER(text) テキスト文字列内のすべての大文字を小文字に変換します。
テキスト UPPER(text) テキスト文字列内のすべての小文字を大文字に変換します。
テキスト TO_TEXT(expr) テキスト、数値、Boolean、日付、または日時式の UTF-8 値を返します。
Datetime TO_DATETIME(expr)

日付、日時、またはエポック式の日時値を返します。

Date

TO_DATETIME(2023-05-15) は 2023-05-15 00:00:00 を返します。

Epoch

TO_DATETIME(1700127401) は 2023-11-16 09:36:41 を返します。

Datetime HOUR_ADD 2 つ目の関数パラメーターの整数値に基づいて、日時値に時間数を追加します。開始日時のその時間数後の日時を返します。
Datetime HOUR_SUB 2 つ目の関数パラメーターの整数値に基づいて、日時値から時間数を減算します。開始日時のその時間数前の日付を返します。
Boolean TO_BOOLEAN(expr) Boolean 値を返します。Boolean 値またはテキスト値「True」と「False」を使用できます。
数値 TO_NUMBER(expr) 特定の式の数値を返します。text、date、datetime、boolean 値の場合は null を返します。
Date TO_DATE(expr)

日付、日時、エポック式の日付値を返します。

Datetime

TO_DATE(2023-11-16 09:36:41) は 2023-11-16 を返します。

Epoch

TO_DATE(1700127401) は 2023-11-16 を返します。

ロジック

ISNULL()

IFNULL()

NULLIF()

ISNOTNULL()

次の関数は null 値をテストします。

text データ型の場合:

  • null 値を確認するには、field = '' を使用します。

    Text データ型では、null 値と空の文字列は異なります。文字を含まない二重引用符は、空の文字列を表します。""

  • null 以外の値を確認するには、field <> '' を使用します。
  • 空の文字列と null 値の両方を除外するには、項目 <> "" AND field <> '' を使用します。

    データエクスプローラーでは、空の文字列と null 値の両方が NULL として表示されます。正確な絞り込みを行うために、null 値と空の文字列の両方の確認を含めることをお勧めします。

number および datetime データ型の場合:

  • null 以外の値を確認するには、ISNOTNULL(field) を使用します。
  • null 値を確認するには、ISNULL(field) を使用します。
ロジック CASE WHEN statement

最初の条件が満たされたときに値を返します (if-then-else など)。

SELECT 
    SourceObject.Id as id__c,
    CASE
        WHEN upper(SourceObject.Type) LIKE '%CAT%' THEN 'pet'
        WHEN lower(SourceObject.Description) LIKE '%donut%' THEN 'food'
        ELSE 'Unknown'
    END AS newProduct__c
    FROM SourceObject
ロジック AND(condition1, condition2)

論理 AND。両方の条件が true であるかどうかをチェックします。

SELECT *
FROM SourceObject
WHERE (Type <> "" AND Comment == "")
ロジック OR(condition1, condition2)

論理 OR。いずれかの条件が true であるかどうかをチェックします。

SELECT *
FROM SourceObject
WHERE (Type <> "" AND Comment == "")
    OR (FirstName == "Alice" AND LastName == "Bob")
演算子 論理演算子

次の値より大きい (>)

次の値以上 (>=)

次の値未満 (<)

次の値以下 (<=)

次の値と等しい (==)

論理 AND (&&)

論理 OR (||)

論理 NOT (!=<>)

演算子 UNION

最大 5 つの SELECT ステートメントを組み合わせます。各 SELECT ステートメントでは、同じソースデータレイクオブジェクトを使用する必要があります。

SELECT Name, City
FROM AccountObject
UNION
SELECT Name, City
FROM AccountObject;

レコードが適切に更新されるようにするには、次の条件が同時に存在しないことを確認します。

  • UNION の 2 つ以上の SELECT ブロックの列は同じ値に評価されます。
  • 列が対象オブジェクトの主キーとして使用される。
  • SELECT ブロックには、データを絞り込む述語が含まれ、述語ごとに異なる方法でデータが絞り込まれます。
日付と日時 CURRENT_DATE() 現在の UTC 日付を日付データ型の値として返します。
 
読み込み中
Salesforce Help | Article