:
(콜론 기호) 연산자
적용 대상: Databricks SQL Databricks 런타임
JSON 경로 식을 사용하여 JSON 문자열에서 콘텐츠를 추출합니다.
구문
jsonExpr : jsonPath
인수
jsonExpr
VARIANT
: 유효한 JSON이 있는 식 또는STRING
식입니다.jsonPath
: JSON 경로 식입니다.
반품
결과는 jsonExpr
형식과 일치합니다. 입력이 유효한 JSON이 아니거나 경로 식이 JSON 값에 대해 유효하지 않은 경우 결과는 NULL
입니다.
추출된 값이 구분되지 않은 null
이면 결과는 NULL
값입니다.
유효한 JSON 경로에 대한 자세한 설명은 JSON 경로 식을 참조하세요.
예제
> SELECT c1:price
FROM VALUES('{ "price": 5 }') AS T(c1);
5
> SELECT c1:['price']::decimal(5,2)
FROM VALUES('{ "price": 5 }') AS T(c1);
5.00
> SELECT c1:item[1].price::double
FROM VALUES('{ "item": [ { "model" : "basic", "price" : 6.12 },
{ "model" : "medium", "price" : 9.24 } ] }') AS T(c1);
9.24
> SELECT c1:item[*].price
FROM VALUES('{ "item": [ { "model" : "basic", "price" : 6.12 },
{ "model" : "medium", "price" : 9.24 } ] }') AS T(c1);
[6.12,9.24]
> SELECT from_json(c1:item[*].price, 'ARRAY<DOUBLE>')[0]
FROM VALUES('{ "item": [ { "model" : "basic", "price" : 6.12 },
{ "model" : "medium", "price" : 9.24 } ] }') AS T(c1);
6.12
> SELECT from_json(c1:item[*], 'ARRAY<STRUCT<model STRING, price DOUBLE>>')
FROM VALUES('{ "item": [ { "model" : "basic", "price" : 6.12 },
{ "model" : "medium", "price" : 9.24 } ] }') AS T(c1);
[{"model":"basic","price":6.12},{"model":"medium","price":9.24}]
> SELECT inline(from_json(c1:item[*], 'ARRAY<STRUCT<model STRING, price DOUBLE>>'))
FROM VALUES('{ "item": [ { "model" : "basic", "price" : 6.12 },
{ "model" : "medium", "price" : 9.24 } ] }') AS T(c1);
basic 6.12
medium 9.24
-- Examples with VARIANT expressions.
> SELECT PARSE_JSON('{ "price": 5 }'):price
5
> SELECT PARSE_JSON('{ "price": 5 }'):price::decimal(5,2)
5.00
> SELECT PARSE_JSON('{ "item": [ { "model" : "basic", "price" : 6.12 },
{ "model" : "medium", "price" : 9.24 } ] }'):item[1].price::double
9.24