إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على:
Databricks SQL
Databricks Runtime
يجمع بين استعلامين فرعيين في استعلام واحد. يدعم Databricks SQL ثلاثة أنواع من عوامل تشغيل المجموعة:
EXCEPTINTERSECTUNION
بناء الجملة
subquery1 { { UNION [ ALL | DISTINCT ] |
INTERSECT [ ALL | DISTINCT ] |
EXCEPT [ ALL | DISTINCT ] } subquery2 } [...] }
الاستعلام الفرعي1، الاستعلام الفرعي2
أي بندين
subqueryكما هو محدد في SELECT. يجب أن يكون لكلا الاستعلامين الفرعيين نفس عدد الأعمدة وأن يشتركا في نوع أقل شيوعا لكل عمود من الأعمدة المعنية.UNION [ALL | DISTINCT]
إرجاع نتيجة
subquery1 plus the rows ofالاستعلام الفرعي 2'.إذا
ALLتم تحديد صفوف مكررة يتم الاحتفاظ بها.إذا
DISTINCTتم تحديد النتيجة لا تحتوي على أي صفوف مكررة. هذا هو الوضع الافتراضي.INTERSECT [الكل | DISTINCT]
إرجاع مجموعة الصفوف الموجودة في كلا الاستعلامين الفرعيين.
إذا
ALLتم تحديد صف يظهر عدة مرات فيsubquery1وكذلك فيsubqueryسيتم إرجاع عدة مرات.إذا
DISTINCTتم تحديد النتيجة لا تحتوي على صفوف مكررة. هذا هو الوضع الافتراضي.باستثناء [الكل | DISTINCT ]
إرجاع الصفوف التي ليست في
subquery1subquery2.إذا
ALLتم تحديده، فسيزيل كل صف فيsubquery2بالضبط واحدا من التطابقات المتعددة المحتملة منsubquery1.إذا
DISTINCTتم تحديدها، تتم إزالة الصفوف المكررة منsubquery1قبل تطبيق العملية، بحيث تتم إزالة كافة التطابقات ولن تحتوي النتيجة على صفوف مكررة (متطابقة أو غير متطابقة). هذا هو الوضع الافتراضي.يمكنك تحديد
MINUSكبديل لبناء الجملة لEXCEPT.
عندما يكون لعمليات INTERSECT مجموعة التسلسل أسبقية أعلى من UNION و EXCEPT.
نوع كل عمود نتيجة هو النوع الأقل شيوعا للأعمدة المعنية في subquery1 و subquery2.
الأمثلة
-- Use number1 and number2 tables to demonstrate set operators in this page.
> CREATE TEMPORARY VIEW number1(c) AS VALUES (3), (1), (2), (2), (3), (4);
> CREATE TEMPORARY VIEW number2(c) AS VALUES (5), (1), (1), (2);
> SELECT c FROM number1 EXCEPT SELECT c FROM number2;
3
4
> SELECT c FROM number1 MINUS SELECT c FROM number2;
3
4
> SELECT c FROM number1 EXCEPT ALL (SELECT c FROM number2);
3
3
4
> SELECT c FROM number1 MINUS ALL (SELECT c FROM number2);
3
3
4
> (SELECT c FROM number1) INTERSECT (SELECT c FROM number2);
1
2
> (SELECT c FROM number1) INTERSECT DISTINCT (SELECT c FROM number2);
1
2
> (SELECT c FROM number1) INTERSECT ALL (SELECT c FROM number2);
1
2
2
> (SELECT c FROM number1) UNION (SELECT c FROM number2);
1
3
5
4
2
> (SELECT c FROM number1) UNION DISTINCT (SELECT c FROM number2);
1
3
5
4
2
> SELECT c FROM number1 UNION ALL (SELECT c FROM number2);
3
1
2
2
3
4
5
1
1
2