연산자 설정
적용 대상: Databricks SQL Databricks Runtime으로 표시됨
두 개의 하위 쿼리를 단일 쿼리로 결합합니다. Databricks SQL은 세 가지 유형의 집합 연산자를 지원합니다.
EXCEPT
INTERSECT
UNION
구문
subquery1 { { UNION [ ALL | DISTINCT ] |
INTERSECT [ ALL | DISTINCT ] |
EXCEPT [ ALL | DISTINCT ] } subquery2 } [...] }
subquery1, subquery2
SELECT에 지정된 두 절
subquery
입니다. 두 하위 쿼리 모두 동일한 수의 열을 가져야 하며 각 열에 대해 최소 공통 형식을 공유해야 합니다.UNION [ALL | DISTINCT]
subquery2'의
subquery1 plus the rows of
결과를 반환합니다.가 지정된 경우
ALL
중복 행이 유지됩니다.가 지정된 경우
DISTINCT
결과에 중복 행이 포함되지 않습니다. 기본값입니다.INTERSECT [ALL | DISTINCT]
두 하위 쿼리에 있는 행 집합을 반환합니다.
가 지정된 경우
ALL
및 에서subquery1
subquery
여러 번 표시되는 행이 여러 번 반환됩니다.가 지정된 경우
DISTINCT
결과에 중복 행이 포함되지 않습니다. 기본값입니다.EXCEPT [ALL | DISTINCT ]
에 없는
subquery2
행을 반환합니다subquery1
.가 지정된 경우
ALL
의 각 행은 에서subquery2
subquery1
여러 일치 항목 중 정확히 하나를 제거합니다.이 지정된 경우
DISTINCT
작업을 적용하기 전에 중복 행이 제거subquery1
되므로 모든 일치 항목이 제거되고 결과에 중복 행(일치되거나 일치하지 않음)이 없습니다. 기본값입니다.의 구문 대안
EXCEPT
으로 를 지정할MINUS
수 있습니다.
집합 작업을 연결하는 경우 및 INTERSECT
EXCEPT
보다 UNION
우선 순위가 높습니다.
각 결과 열의 형식은 및 subquery2
에서 해당 열의 가장 일반적인 형식입니다subquery1
.
예
-- 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