- カテゴリ:
半構造化データ関数 (抽出)
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 表記です。これは、ピリオド(例:
.
)とインデックス演算子(例:[<インデックス>]
)が前に付いたフィールド名(識別子)の連結で構成されます。最初のフィールド名には、先行ピリオドを指定する必要はありません。
インデックス演算子のインデックス値は、負でない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;