SET句を使う
SET句は、クエリー内で後で再利用できる変数を定義するために使われます。
SET句は次のように構造化する必要があります。
SET $variable_name = expression
一度定義した変数は、同じ構文を使えばその値を変更できます。
変数は$記号で始まる必要があり、階層識別子ではない必要があります(たとえば $item.indexは有効な変数ではありません)。変数はクエリー全体で一意であることが必要です。変数値の指定に使用される式は、単独な式または条件式です。Talend Data Mapperでは、配列になることもあります。
SET句は、FROM句、UNNEST句、JOIN句、GROUP BY句の後か、SELECT句によって導入されたクエリーブロック内で使用する必要があります。Talend Data Mapperでは、UNION ALL句の後でも使用できます。クエリーブロックにWHERE句かHAVING句が含まれている場合は、その前にSET句を置く必要があります。例:
FROM customer
SET $address = concatWith(" ", address.street, address.city)
WHERE hasValue(rating)
SELECT {
name,
rating,
address = $address,
SET $level = if (rating > 650) "Premium" else "Standard",
level = $level
}
情報メモ注: SELECT句でSET句が使われている場合:
- この変数はそのブロック内でのみ使用可能であり、クエリー内の他の場所では使用できません。
- 集計関数はサポートされていません。