WITH句を使う
WITH句は、クエリー内で後で再利用できる変数を定義するために使われます。
WITH句は次のように構造化する必要があります。
WITH $variable_name = expression
変数は$記号で始まる必要があり、階層識別子ではない必要があります(たとえば $item.indexは有効な変数ではありません)。変数はクエリー全体で一意であることが必要です。変数値の指定に使用される式は、単独な式または条件式です。Talend Data Mapperでは、配列になることもあります。
WITH句は、クエリーまたはサブクエリーの先頭に、そしてFROM-WHERE-SELECT句の前に使われる必要があります。Talend Data Mapperでは、UNION ALL句の後でも使用できます。例:
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句はクエリーごとに一度だけ評価されます。