Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: Databricks SQL
Databricks Runtime
Returnerar ett fieldIdentifier
värde i ett STRUCT
eller ett värde med keyIdentifier
i en MAP
.
Syntax
structExpr . fieldIdentifier
mapExpr . keyIdentifier
Argument
-
structExpr
: EttSTRUCT
uttryck. -
fieldIdentifier
: En identifierare för fältet istructExpr
. -
mapExpr
: EttMAP
uttryck med nycklar av typenSTRING
. -
keyIdentifier
: En identifierare som matchar ett nyckelvärde imapExpr
.
Retur
En typ som matchar fieldIdentifier
eller typen för värdena mapExpr
.
Upplösning av namn har företräde framför upplösning av den här operatorn.
Givet en serie identifierare avgränsade med punkter, kommer Azure Databricks att lösa upp det längsta möjliga kvalificerade namnet.
Om det lösta namnet är ett MAP
eller STRUCT
kommer Azure Databricks att tolka de återstående identifierarna med punktoperatorn.
När det används med STRUCT
verifierar Azure Databricks förekomsten av fieldIdentifier
i strukturen när instruktionen kompileras.
När den används med MAP
, och det inte finns någon nyckel som matchar keyIdentifier
, returnerar Azure Databricks null.
Om du vill returnera NULL
använder du i stället funktionen try_element_at.
Varning
I Databricks Runtime, om spark.sql.ansi.enabled är false
, blir resultatet NULL
om ingen matchande nyckel hittas för mapExpr
.
Exempel
-- 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