Udostępnij za pośrednictwem


Funkcja try_variant_get

Dotyczy:oznaczone jako tak Databricks SQL oznaczone jako tak 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