WITH句を使う
WITH句は、クエリー内で後で再利用できる変数を定義するために使われます。
WITH句は次のように構造化する必要があります。
WITH $variable_name = expression
変数は$記号で始まる必要があり、階層識別子ではない必要があります(たとえば $item.indexは有効な変数ではありません)。変数はクエリー全体で一意であることが必要です。変数値の指定に使用される式は、単純式、条件式、配列のいずれかです。
WITH句の使用は、クエリーまたはサブクエリーの先頭か、FROM-WHERE-SELECT句の前か、UNION ALL句の後であることが必要です。Talend Data Mapper ( 8.0.1-R2024-11以降のマンスリーアップデートを伴う)では、クエリーブロックの先頭にWITH句を使用することもできます。例:
WITH $limit_date = toDate('2020-05-21')
FROM order AS o
WHERE toDate(o.order_date) >= $limit_date
SELECT {
items = (
WITH $limit_price = 1000
FROM o.items AS i
LET $total_price = i.qty * i.price
WHERE $total_price >= $limit_price
SELECT {
o.order_id,
total_price = $total_price
}
)
}
LET句を使う句とは異なり、WITH句はクエリーごとに一度だけ評価されます。