Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Gilt für:
Databricks SQL
Databricks Runtime
Gibt einen fieldIdentifier-Wert in einem STRUCT oder einen Wert von keyIdentifier in einem MAP zurück.
Syntax
structExpr . fieldIdentifier
mapExpr . keyIdentifier
Argumente
-
structExpr: EinSTRUCT-Ausdruck. -
fieldIdentifier: Ein Bezeichner für ein Feld instructExpr. -
mapExpr: EinMAP-Ausdruck mit Schlüsseln des TypsSTRING. -
keyIdentifier: Ein Bezeichner, der einem Schlüsselwert inmapExprentspricht.
Gibt zurück
Ein Typ, der dem Typ von fieldIdentifier oder dem Typ der mapExpr-Werte entspricht.
Die Auflösung von Namen hat Vorrang vor der Auflösung dieses Operators.
Das heißt, angesichts einer Reihe von Bezeichnern, die durch Punkte getrennt sind, wird Azure Databricks den längsten möglichen qualifizierten Namen auflösen.
Wenn der aufgelöste Name ein MAP oder STRUCT ist, interpretiert Azure Databricks die verbleibenden Bezeichner mithilfe des Punktzeichenoperators.
Bei Verwendung mit STRUCT überprüft Azure Databricks das Vorhandensein von fieldIdentifier in der Struktur, wenn die Anweisung kompiliert wird.
Bei Verwendung mit MAP und wenn kein Schlüssel vorhanden ist, der mit keyIdentifier übereinstimmt, gibt Azure Databricks NULL zurück.
Damit stattdessen NULL zurückgegeben wird, verwenden Sie die Funktion try_element_at.
Warnung
In Databricks Runtime ist das Ergebnis , wenn kein übereinstimmender Schlüssel für false gefunden wird, wenn NULL auf mapExpr festgelegt ist.
Beispiele
-- 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