مرجع الجدول
ينطبق على: Databricks SQL Databricks Runtime
مرجع الجدول هو جدول نتائج وسيط داخل SQL. يمكن اشتقاقه من عوامل تشغيل أخرى، مثل الدالات أو الصلات أو الاستعلام الفرعي، أو الرجوع إلى جدول أساسي مباشرة، أو إنشاؤه كجدول مضمن.
بناء الجملة
table_reference
{ table_name [ TABLESAMPLE clause ] [ table_alias ] |
{ STREAM table_name [ table_alias ] | STREAM ( table_name ) [ table_alias ] } |
view_name [ table_alias ] |
JOIN clause |
PIVOT clause |
UNPIVOT clause |
[ STREAM ] table_valued_function [ table_alias ] |
[ LATERAL ] table_valued_function [ table_alias ] |
VALUES clause |
[ LATERAL ] ( query ) [ TABLESAMPLE clause ] [ table_alias ] }
المعلمات
-
تعريف جدول قد يحتوي على مواصفات زمنية. راجع العمل مع محفوظات جدول Delta Lake للحصول على التفاصيل.
إذا تعذر العثور على الجدول، فإن Azure Databricks يثير خطأ TABLE_OR_VIEW_NOT_FOUND .
راجع العمود، الحقل، المعلمة، ودقة المتغير للحصول على مزيد من المعلومات حول تحليل الاسم.
-
تعريف طريقة عرض أو تعبير جدول شائع (CTE). إذا تعذر العثور على طريقة العرض، فإن Azure Databricks يثير خطأ TABLE_OR_VIEW_NOT_FOUND .
راجع العمود، الحقل، المعلمة، ودقة المتغير للحصول على مزيد من المعلومات حول تحليل الاسم.
تيار
إرجاع جدول أو دالة ذات قيمة جدول كمصدر دفق. لا يمكن توفير الجداول بمواصفات زمنية عند استخدامها مع
STREAM
الكلمة الأساسية . يتم استخدام مصادر الدفق الأكثر شيوعا في تعريفات جداول الدفق.-
يجمع بين علاقة أو أكثر باستخدام صلة.
-
ينطبق على: Databricks SQL Databricks Runtime 12.2 LTS وما فوق.
يستخدم لمنظور البيانات؛ يمكنك الحصول على القيم المجمعة استنادا إلى قيمة عمود محددة.
قبل Databricks Runtime 12.0 يقتصر PIVOT على SELECT الذي يتبع العبارة
FROM
. -
ينطبق على: Databricks SQL Databricks Runtime 12.2 LTS وما فوق.
يستخدم لمنظور البيانات؛ يمكنك تقسيم مجموعات أعمدة متعددة إلى صفوف.
[لاحقا]table_valued_function_invocation
استدعاء دالة ذات قيمة جدول. للإشارة إلى الأعمدة المكشوفة بواسطة السابق
table_reference
في نفسFROM
العبارة يجب تحديدLATERAL
.-
تعريف جدول مضمن.
[لاحقا] ( استعلام )
يحسب مرجع جدول باستخدام استعلام. قد يشير استعلام مسبوق بأعمدة
LATERAL
تم كشفها بواسطة سابقtable_reference
في نفسFROM
العبارة. تسمى هذه البنية استعلاما مرتبطا أو تابعا.-
قم بشكل اختياري بتقليل حجم مجموعة النتائج عن طريق أخذ عينات من جزء صغير من الصفوف فقط.
-
يحدد اختياريا تسمية ل
table_reference
.table_alias
إذا كان يتضمنcolumn_identifier
s يجب أن يتطابق رقمها مع عدد الأعمدة فيtable_reference
.
تحديد على جدول Delta
بالإضافة إلى الخيارات القياسية SELECT
، تدعم جداول Delta خيارات السفر عبر الوقت الموضحة في هذا القسم. للحصول على التفاصيل، راجع العمل مع محفوظات جدول Delta Lake.
AS OF
بناء الجمله
table_identifier TIMESTAMP AS OF timestamp_expression
table_identifier VERSION AS OF version
timestamp_expression
يمكن أن يكون أي واحد من:'2018-10-18T22:15:12.013Z'
، أي سلسلة يمكن تحويلها إلى طابع زمنيcast('2018-10-18 13:36:32 CEST' as timestamp)
'2018-10-18'
، أي سلسلة تاريخcurrent_timestamp() - interval 12 hours
date_sub(current_date(), 1)
- أي تعبير آخر يتم تحويله أو يمكن تحويله إلى طابع زمني
version
هي قيمة طويلة يمكن الحصول عليها من إخراجDESCRIBE HISTORY table_spec
.
لا timestamp_expression
يمكن ولا version
الاستعلامات الفرعية.
مثال
> SELECT * FROM events TIMESTAMP AS OF '2018-10-18T22:15:12.013Z'
> SELECT * FROM delta.`/mnt/delta/events` VERSION AS OF 123
@
بناء الجمله
استخدم بناء الجملة @
لتحديد الطابع الزمني أو الإصدار. يجب أن يكون الطابع الزمني بالتنسيق yyyyMMddHHmmssSSS
. يمكنك تحديد إصدار بعد @
عن طريق إلحاق بالإصدار v
. على سبيل المثال، للاستعلام عن إصدار 123
الجدول events
، حدد events@v123
.
مثال
> SELECT * FROM events@20190101000000000
> SELECT * FROM events@v123
الأمثلة
-- select all referencable columns from all tables
> SELECT * FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
1 2 3 4
-- select all referencable columns from one table
> SELECT t2.* FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
3 4
-- select all referencable columns from all tables except t2.c4
> SELECT * EXCEPT(c4) FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
1 2 3
-- select all referencable columns from a table, except a nested field.
> SELECT * EXCEPT(c2.b) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
1 { "a" : 2 }
-- Removing all fields results in an empty struct
> SELECT * EXCEPT(c2.b, c2.a) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
1 { }
-- Overlapping names result in an error
> SELECT * EXCEPT(c2, c2.a) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
Error: EXCEPT_OVERLAPPING_COLUMNS