- カテゴリ:
半構造化データ関数と構造化データ関数 (高次)
FILTER¶
ラムダ式のロジックに基づいて、 配列 をフィルターします。
- こちらもご参照ください。
構文¶
引数¶
arrayフィルターする要素を含む配列。配列は半構造化でも構造化でもかまいません。
lambda_expression各配列要素に対するフィルター条件を定義する ラムダ式。
ラムダ式には、以下の構文で指定された引数1つのみを使用する必要があります。
戻り値¶
この関数の戻り値は、入力配列と同じ型の配列です。返される配列には、フィルター条件が TRUE を返す要素が含まれます。
引数が NULL の場合、関数はエラーを報告せずに NULL を返します。
使用上の注意¶
ラムダ引数のデータ型が明示的に指定されている場合、配列要素はラムダ呼び出しの前に指定された型に強制されます。強制については、 データ型の変換 をご参照ください。
フィルター条件が NULL と評価された場合、対応する配列要素はフィルターから除外されます。
例¶
以下の例では、 FILTER 関数を使用しています。
値より大きい配列要素をフィルターする¶
FILTER 関数を使用して、50以上の値を持つ配列内のオブジェクトを返します。
NULL ではない配列要素をフィルターする¶
NULL ではない配列要素を返すには FILTER 関数を使用します。
テーブル内の配列要素のうち、指定した値以上のものをフィルターする¶
order_id、 order_date、 order_detail の列を持つ orders という名前のテーブルがあるとします。order_detail 列は、行項目、購入数量、小計の配列です。テーブルには2行のデータがあります。次の SQL ステートメントは、このテーブルを作成し、行を挿入します。
FILTER 関数を使用して、1500以上の小計を持つ注文を返します。
ラムダ式でテーブル列を参照し、テーブルデータの配列要素をフィルタリングします¶
ARRAY 型の列と INT 型の列を持つテーブルを作成します。
FILTER 関数を使用して、各行の配列要素値のうち col2 より小さい値を返します。