Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: Databricks SQL
Databricks Runtime
Egy fieldIdentifier
értéket STRUCT
formájában vagy keyIdentifier
módon MAP
formájában ad vissza.
Szintaxis
structExpr . fieldIdentifier
mapExpr . keyIdentifier
Argumentumok
-
structExpr
: EgySTRUCT
kifejezés -
fieldIdentifier
: EgystructExpr
mezőn belüli azonosító. -
mapExpr
: TípuskulcsokatMAP
STRING
tartalmazó kifejezés. -
keyIdentifier
: AmapExpr
kulcsértékének megfelelő azonosító.
Visszatérítések
A fieldIdentifier
vagy a mapExpr
érték típusának megfelelő típus.
A nevek feloldása elsőbbséget élvez az operátor felbontásával szemben.
Vagyis adott egy, a pontokkal elválasztott azonosítók sorozata , az Azure Databricks a lehető leghosszabb minősített nevet fogja azonosítani.
Ha a feloldott név egy MAP
vagy STRUCT
az Azure Databricks a pontjel operátorral értelmezi a fennmaradó azonosítókat.
STRUCT
Az Azure Databricks az utasítás fordításakor ellenőrzi, hogy létezik-e fieldIdentifier
a szerkezetben.
Ha egy MAP
-vel használják, és nincs keyIdentifier
kulcs, amely egyezik, az Azure Databricks null értéket ad vissza.
Ehelyett a NULL
visszaadása helyett használja a try_element_at függvényt.
Figyelmeztetés
A Databricks Runtime környezetében, ha a spark.sql.ansi.enabledfalse
, az eredmény NULL
lesz, ha nem található megfelelő kulcs a mapExpr
számára.
Példák
-- 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