カテゴリ:

半構造化データ関数 (抽出)

GET_PATH 、 :

パス名を使用して半構造化データから値を抽出します。

GET_PATH は、 GET のバリエーションです。最初の引数として VARIANT、 OBJECT、または ARRAY 列名を取り、2番目の引数として提供されたパス名に従ってフィールドまたは要素の VARIANT 値を抽出します。

構文

GET_PATH( <column_identifier> , '<path_name>' )

<column_identifier>:<path_name>

:( <column_identifier> , '<path_name>' )

使用上の注意

  • GET_PATH は、 GET 関数のチェーンと同等です。パス名がどの要素にも対応しない場合、 NULL を返します。

  • パス名の構文は標準の JavaScript 表記です。これは、ピリオド(例: .)とインデックス演算子(例: [<index>])が前に付いたフィールド名(識別子)の連結で構成されます。

    • 最初のフィールド名には、先行ピリオドを指定する必要はありません。

    • インデックス演算子のインデックス値は、負でない10進数(配列の場合)または一重引用符または二重引用符で囲まれた文字列リテラル(オブジェクトフィールドの場合)です。

    詳細については、 半構造化データのクエリ をご参照ください。

  • GET_PATH また、列名(ピリオドを含むことができる)をパス指定子から分離する抽出演算子として : 文字を使用する構文ショートカットもサポートします。

    構文の一貫性を維持するために、パス表記は SQL スタイルの二重引用符で囲まれた識別子もサポートし、パス区切り文字として : を使用します。

    : 演算子を使用すると、整数または文字列の部分式を [] 内に含めることができます。

vartab テーブルからフィールド name を抽出します。

SELECT GET_PATH(v, 'attr[0].name') FROM vartab;

最初の例と同じですが、抽出演算子として : を使用します。

SELECT v:attr[0].name FROM vartab;

抽出演算子 : は左結合です。つまり、上記の例では、 v:attr[0]:name を使用すると左 : と同じ効果があり、右抽出演算子 : は、 name フィールドの値を抽出します。

最初の例と同じですが、 SQLスタイルの二重引用符で囲まれた識別子とパス区切り文字として : を使用します。

SELECT GET_PATH('v:"attr"[0]:"name"') FROM vartab;