تعيين عوامل التشغيل
ينطبق على: التحقق من Databricks SQL Databricks Runtime
يجمع بين استعلامين فرعيين في استعلام واحد. يدعم Databricks SQL ثلاثة أنواع من عوامل تشغيل المجموعة:
EXCEPT
INTERSECT
UNION
بناء الجمله
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 [ALL | DISTINCT]
إرجاع مجموعة الصفوف الموجودة في كلا الاستعلامين الفرعيين.
إذا
ALL
تم تحديد صف يظهر عدة مرات فيsubquery1
وكذلك فيsubquery
، فسيتم إرجاع عدة مرات.إذا
DISTINCT
تم تحديد النتيجة لا تحتوي على صفوف مكررة. هذا هو الافتراضي.باستثناء [الكل | DISTINCT ]
إرجاع الصفوف التي ليست في
subquery1
subquery2
.إذا
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