Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Funkcja
Dotyczy: Databricks SQL
Databricks Runtime 15.3 lub nowszy
Wyodrębnia wartość typu type
z variantExpr
, określonej przez path
, lub NULL
jeśli nie jest możliwe rzutowanie do typu docelowego.
Składnia
try_variant_get ( variantExpr, path, type )
Argumenty
-
variantExpr
VARIANT
: wyrażenie. -
path
STRING
: literał z dobrze sformułowanym wyrażeniem ścieżki JSON. -
type
STRING
: literał definiujący typ.
Zwraca
Wartość typu type
.
Jeśli nie można odnaleźć obiektu lub nie można go rzutować na type
, NULL
jest zwracany.
Aby zgłosić błąd, gdy rzutowanie kończy się niepowodzeniem, użyj variant_get.
Przykłady
-- Simple example
> SELECT try_variant_get(parse_json('{"key": 123, "data": [4, {"a": "hello"}, "str"]}'), '$.data[1].a', 'string')
hello
-- missing path
> SELECT try_variant_get(parse_json('{"key": 123, "data": [4, {"a": "hello"}, "str"]}'), '$.missing', 'int')
null
-- Invalid cast
> SELECT try_variant_get(parse_json('{"key": 123, "data": [4, {"a": "hello"}, "str"]}'), '$.key', 'boolean')
null
-- These are synonymous to:
> SELECT '{"key": 123, "data": [4, {"a": "hello"}, "str"]}':data[1].a ?::STRING;
hello
> SELECT '{"key": 123, "data": [4, {"a": "hello"}, "str"]}':missing ?::STRING;
null
> SELECT '{"key": 123, "data": [4, {"a": "hello"}, "str"]}':key ?::BOOLEAN;
null