GET_PATH (Lakehouse v1)
path_name を指定して、VARIANT から値を抽出します。
値は Variant として返されます。いずれかの引数が NULL の場合は NULL を返します。
GET_PATH は GET 関数を連鎖させた場合と同等です。path_name は、ピリオド(.)、コロン(:)、またはインデックス演算子([index])を前に付けたフィールド名を連結したものです。最初のフィールド名には、先頭の識別子を指定する必要はありません。
Analyze構文
Section titled “Analyze構文”func.get_path(<variant>, <path_name>)Analyzeの例
Section titled “Analyzeの例”func.get_path(func.parse_json('{"k1":[0,1,2], "k2":{"k3":3,"k4":4}}'), 'k2.k4')┌─────────────────────────────────────────────────────────────────────────────────┐│ func.get_path(func.parse_json('{"k1":[0,1,2], "k2":{"k3":3,"k4":4}}'), 'k2.k4') │├─────────────────────────────────────────────────────────────────────────────────┤│ 4 │└─────────────────────────────────────────────────────────────────────────────────┘GET_PATH( <variant>, <path_name> )| 引数 | 説明 |
|---|---|
<variant> |
ARRAYまたはOBJECTを含むVARIANT値 |
<path_name> |
フィールド名を連結した文字列値 |
VARIANT
SELECT get_path(parse_json('{"k1":[0,1,2], "k2":{"k3":3,"k4":4}}'), 'k1[0]');┌───────────────────────────────────────────────────────────────────────┐│ get_path(parse_json('{"k1":[0,1,2], "k2":{"k3":3,"k4":4}}'), 'k1[0]') │├───────────────────────────────────────────────────────────────────────┤│ 0 │└───────────────────────────────────────────────────────────────────────┘
SELECT get_path(parse_json('{"k1":[0,1,2], "k2":{"k3":3,"k4":4}}'), 'k2:k3');┌───────────────────────────────────────────────────────────────────────┐│ get_path(parse_json('{"k1":[0,1,2], "k2":{"k3":3,"k4":4}}'), 'k2:k3') │├───────────────────────────────────────────────────────────────────────┤│ 3 │└───────────────────────────────────────────────────────────────────────┘
SELECT get_path(parse_json('{"k1":[0,1,2], "k2":{"k3":3,"k4":4}}'), 'k2.k4');┌───────────────────────────────────────────────────────────────────────┐│ get_path(parse_json('{"k1":[0,1,2], "k2":{"k3":3,"k4":4}}'), 'k2.k4') │├───────────────────────────────────────────────────────────────────────┤│ 4 │└───────────────────────────────────────────────────────────────────────┘
SELECT get_path(parse_json('{"k1":[0,1,2], "k2":{"k3":3,"k4":4}}'), 'k2.k5');┌───────────────────────────────────────────────────────────────────────┐│ get_path(parse_json('{"k1":[0,1,2], "k2":{"k3":3,"k4":4}}'), 'k2.k5') │├───────────────────────────────────────────────────────────────────────┤│ NULL │└───────────────────────────────────────────────────────────────────────┘