مشاركة عبر


. عامل تشغيل (علامة نقطة)

ينطبق على: وضع علامة Databricks SQL وضع علامة Databricks Runtime

fieldIdentifier إرجاع قيمة في STRUCT أو قيمة في keyIdentifier .MAP

بناء الجملة

structExpr . fieldIdentifier

mapExpr . keyIdentifier

الوسيطات

المرتجعات

نوع يطابق fieldIdentifier نوع القيم أو نوعها mapExpr .

يكون لتحليل الأسماء الأسبقية على دقة عامل التشغيل هذا. أي، بالنظر إلى سلسلة من المعرفات مفصولة بنقاط، سيقوم Azure Databricks بحل أطول اسم مؤهل ممكن. إذا كان الاسم الذي تم حله هو MAP أو STRUCT سيقوم Azure Databricks بتفسير المعرفات المتبقية باستخدام عامل تشغيل علامة النقطة.

عند استخدامها مع STRUCT، يتحقق Azure Databricks من fieldIdentifier وجود في البنية عند تحويل العبارة برمجيا.

عند استخدامها مع MAP، ولا يوجد مفتاح يطابق keyIdentifier، ترجع Azure Databricks قيمة خالية. NULL للعودة بدلا من ذلك، استخدم الدالة try_element_at.

الأمثلة

-- 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