İşleçleri ayarlama

Şunun için geçerlidir:evet olarak işaretlendi Databricks SQL denetimi yes Databricks Runtime olarak işaretlendi

İki alt sorguları tek bir sorguda birleştirir. Databricks SQL üç tür küme işlecini destekler:

  • EXCEPT
  • INTERSECT
  • UNION

Sözdizimi

subquery1 { { UNION [ ALL | DISTINCT ] |
              INTERSECT [ ALL | DISTINCT ] |
              EXCEPT [ ALL | DISTINCT ] } subquery2 } [...] }
  • subquery1, subquery2

    SELECT'te belirtilen iki subquery yan tümce. Her iki alt sorgu da aynı sayıda sütuna sahip olmalı ve ilgili her sütun için en az ortak türü paylaşmalıdır.

  • UNION [ALL | DISTINCT]

    Subquery2' sonucunu subquery1 plus the rows of döndürür.

    Belirtilirse ALL , yinelenen satırlar korunur.

    Belirtilirse DISTINCT , sonuç yinelenen satır içermez. Bu varsayılan değerdir.

  • INTERSECT [ALL | DISTINCT]

    Her iki alt sorguda da bulunan satır kümesini döndürür.

    hem içinde hem de subquery içinde subquery1 birden çok kez görünen bir satır belirtilirseALL, birden çok kez döndürülür.

    Belirtilirse DISTINCT , sonuç yinelenen satırlar içermez. Bu varsayılan değerdir.

  • [TÜMÜ | DISTINCT ]

    içinde subquery1 olmayan subquery2satırları döndürür.

    belirtilirse ALL , içindeki subquery2 her satır dosyasından birden çok eşleşmeden subquery1tam olarak birini kaldırır.

    belirtilirse DISTINCT , işlemi uygulamadan önce yinelenen satırlar kaldırılır subquery1 , bu nedenle tüm eşleşmeler kaldırılır ve sonuçta yinelenen satırlar (eşleştirilen veya eşleşmeyen) olmaz. Bu varsayılan değerdir.

    için EXCEPTbir söz dizimi alternatifi olarak belirtebilirsinizMINUS.

Zincirleme kümesi işlemleri INTERSECT ve'den UNIONEXCEPTdaha yüksek önceliğe sahip olduğunda.

Her sonuç sütununun türü, ve subquery2içindeki subquery1 ilgili sütunların en az ortak türüdür.

Örnekler

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