Aracılığıyla paylaş


. (nokta işareti) işleci

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime

fieldIdentifier değerini bir STRUCT içinde veya keyIdentifier ile bir MAP içinde döndürür.

Söz dizimi

structExpr . fieldIdentifier

mapExpr . keyIdentifier

Argümanlar

  • structExpr: Bir STRUCT ifade.
  • fieldIdentifier: içindeki alan için structExpr.
  • mapExpr: MAP, STRING türünde anahtarlara sahip bir ifade.
  • keyIdentifier: tanımlayıcısı, mapExprile eşleşen bir anahtar değeri.

İadeler

fieldIdentifier veya mapExpr değerlerinin türüyle eşleşen bir tür.

Adların çözümlenmesi, bu işlecin çözümlenmesinden önceliklidir. Yani, noktalarla ayrılmış bir dizi tanımlayıcı verildiğinde, Azure Databricks en uzun olası özellikli adı belirler. Çözümlenen ad bir MAP ise veya STRUCT Azure Databricks kalan tanımlayıcıları nokta işareti işlecini kullanarak yorumlar.

Azure Databricks, STRUCT ile kullanıldığında, deyim derlenirken yapıda fieldIdentifier öğesinin varlığını doğrular.

MAP ile kullanıldığında ve keyIdentifier ile eşleşen bir anahtar olmadığında Azure Databricks null döndürür. Bunun yerine NULL'yi döndürmek için try_element_at işlevini kullanın.

Uyarı

Databricks Runtime'da, spark.sql.ansi.enabled ise ve mapExpr için eşleşen bir anahtar bulunamazsa, sonuç NULL olur.

Örnekler

-- Names take precedence over the dot sign operator
> CREATE SCHEMA a;
> CREATE TABLE a.a(a struct<a INT, b STRING>);
> INSERT INTO a.a VALUES (named_struct('a', 5, 'b', 'Spark'));

-- Column `a` in table `a`
> SELECT a.a FROM a.a;
  {"a":5,"b":"Spark"}

-- Field `b` in column `a`
> SELECT a.b FROM a.a;
  Spark

-- Column `a` in table `a.a`
> SELECT a.a.a FROM a.a;
  {"a":5,"b":"Spark"}

-- Field `a` in column `a` in table `a.a`
> SELECT a.a.a.a FROM a.a;
  5

-- Resolving a map value:
> SELECT map('three', 3).three;
 3

-- Resolving a map value using the [ ] notation:
> SELECT map('three', 3)['three']
 3

-- Resolving a map value using back quotes:
> SELECT map('서울시', 'Seoul').`서울시`;
  Seoul

-- Cannot resolve a non existing key
> SELECT map('three', 3).four;
  NULL