Databricks التعبير SQL
التعبير هو صيغة تحسب نتيجة استنادا إلى مراجع حرفية أو عمودية أو حقل أو متغير باستخدام الدالات أو عوامل التشغيل.
بناء الجملة
{ literal |
column_reference |
field_reference |
CAST expression |
CASE expression |
expr operator expr |
operator expr |
expr [ expr ] |
function_invocation |
( expr ) |
scalar_subquery }
scalar_subquery
( query )
الأقواس [ expr ]
هي أقواس فعلية ولا تشير إلى بناء جملة اختياري.
المعلمات
- حرفي: حرفي من نوع موصوف في Databricks SQL أنواع البيانات.
- column_reference: مرجع إلى عمود في جدول أو اسم مستعار للعمود.
- field_reference: مرجع إلى حقل في نوع STRUCT (SQL Databricks).
- تعبير CAST: تعبير يلقي الوسيطة إلى نوع مختلف.
- تعبير الحالة: تعبير يسمح بالتقييم الشرطي.
- expr: تعبير نفسه يتم دمجه مع ، أو الذي هو وسيطة لدالة.
- عامل التشغيل: عامل تشغيل أحادي أو ثنائي.
- [ expr ]: إشارة إلى عنصر صفيف أو مفتاح خريطة.
- function_invocation: تعبير يستدعي دالة مضمنة أو معرفة من قبل المستخدم
- ( expr ): الأسبقية القسرية التي تتجاوز أسبقية المشغل.
- scalar_subquery:
- ( استعلام ): تعبير يستند إلى استعلام يجب أن يعرض عمودا واحدا وصفا واحدا على الأكثر.
ملاحظات
تتوقع الوظائف والمشغلون أنواع بيانات محددة يعملون عليها والتي يتم وصفها مع الوظيفة أو المشغل المعني. يقوم Databricks SQL بإجراء الإرسال الضمني للأنواع المتوقعة باستخدام قواعد نوع البيانات SQL (Databricks SQL). إذا كان عامل التشغيل أو الدالة غير صالحة للوسيطة المتوفرة، فإن Databricks SQL يثير خطأ.
التعبير المستمر
تعبير يعتمد فقط على الحروف أو الوظائف الحتمية بدون حجج. يمكن ل Databricks SQL تنفيذ التعبير واستخدام الثابت الناتج حيث تكون هناك حاجة إلى الحروف عادة.
التعبير المنطقي
تعبير بنوع نتيجة من BOOLEAN
. يشار أحيانا إلى التعبير المنطقي على أنه شرط أو مسند.
الاستعلام الفرعي العددي
تعبير عن النموذج ( query )
. يجب أن يعرض الاستعلام جدولا يحتوي على عمود واحد وصف واحد على الأكثر.
إذا كان الاستعلام لا يعرض أي صف، تكون النتيجة NULL
.
إذا كان الاستعلام يعرض أكثر من صف واحد، فإن Databricks SQL ترجع خطأ.
وإلا، فإن النتيجة هي القيمة التي تم إرجاعها بواسطة الاستعلام.
تعبير بسيط
تعبير لا يحتوي على query
، مثل استعلام فرعي عددي أو EXISTS
مسند.
أمثلة
> SELECT 1;
1
> SELECT (SELECT 1) + 1;
2
> SELECT 1 + 1;
2
> SELECT 2 * (1 + 2);
6
> SELECT 2 * 1 + 2;
4
> SELECT substr('Spark', 1, 2);
Sp
> SELECT c1 + c2 FROM VALUES(1, 2) AS t(c1, c2);
3
> SELECT a[1] FROM VALUES(array(10, 20)) AS T(a);
20
> SELECT true;
true