- カテゴリ:
半構造化データ関数と構造化データ関数 (配列/オブジェクト)
OBJECT_CONSTRUCT¶
引数から構築された OBJECT を返します。
- こちらもご参照ください。
構文¶
引数¶
keyキーと値のペアのキー。各キーは VARCHAR 値です。
valueキーに関連付けられた値。値はどのデータ型でも使用できます。
*アスタリスク(ワイルドカード)を付けて呼び出す場合、 OBJECT 値は属性名をキー、関連する値を値として、指定されたデータから構築されます。以下の例をご参照ください。
関数にワイルドカードを渡す場合、ワイルドカードをテーブルの名前またはエイリアスで修飾することができます。例えば、
mytableというテーブルからすべての列を渡すには、以下のように指定します。ILIKE と EXCLUDE キーワードを使ってフィルタリングすることもできます。
ILIKE は、指定されたパターンに一致する列名でフィルターします。許されるパターンは1つのみです。例:
EXCLUDE は、指定された列に一致しない列名をフィルターします。例:
修飾子は、これらのキーワードを使用する場合に有効です。以下の例では、 ILIKE キーワードを使用して、テーブル
mytable内のパターンcol1%に一致するすべての列をフィルターします。ILIKE と EXCLUDE キーワードは、1つの関数呼び出し内で組み合わせることはできません。
オブジェクト定数 でワイルドカードを指定することもできます。
この関数では、 ILIKE と EXCLUDE キーワードは SELECT リストまたは GROUP BY 句でのみ有効です。
ILIKE と EXCLUDE キーワードの詳細については、 SELECT の「パラメータ」セクションをご参照ください。
戻り値¶
型 OBJECT の値を返します。
使用上の注意¶
例¶
以下の例では、 OBJECT_CONSTRUCT関数を呼びだしています。
単純なオブジェクトを構築する¶
この例は、単純なオブジェクトを作成する方法を示しています。
ワイルドカード(*)文字を使用してオブジェクトを構築する¶
この例では、ワイルドカード文字(*)を使用して、FROM句から属性名と値を取得します。
この例では、:code:`*`を使用し、出力をフィルタリングするためのILIKEキーワードを含めます。
この例では、:code:`*`を使用し、出力をフィルタリングするためのEXCLUDEキーワードを含めます。
この例は前の例と同じですが、 OBJECT_CONSTRUCT 関数の代わりにオブジェクト定数を使用しています。
これは、 * を使用した別の例です。この場合、属性名は指定されていないため、Snowflakeは COLUMN1、 COLUMN2 などを使用します。
SQL NULLとJSON nullを使用してオブジェクトを構築する¶
この例では、SQL NULLと文字列``'null'``を使用してオブジェクトを構築します。
詳細については、 NULL 値 をご参照ください。
式を使用してオブジェクトを構築する¶
OBJECT_CONSTRUCT は、 JSON オブジェクトの値を追加、変更、または除外する式とクエリをサポートします。
ネストされたOBJECT値を構築する¶
次の例では、テーブルを作成し、2階層のネスト構造を持つOBJECT値を挿入します。