Oracle / PLSQL : MINUS 연산자
이 Oracle 튜토리얼에서는 구문과 예제를 통해 Oracle MINUS 연산자를 사용하는 방법을 설명합니다.
설명
Oracle MINUS 연산자는 첫 번째 SELECT 문에서 두 번째 SELECT 문에서 반환되지 않는 모든 행을 반환하는 데 사용됩니다. 각 SELECT 문은 데이터셋을 정의합니다. MINUS 연산자는 첫 번째 데이터 집합에서 모든 레코드를 검색한 다음 두 번째 데이터셋의 모든 레코드를 결과에서 제거합니다.
차집합(Minus Query)
설명 : MINUS 쿼리는 파란색 음영 영역에 있는 레코드를 반환합니다. 이는 Dataset1에 존재하지만 Dataset2에는 없는 레코드입니다.
MINUS 쿼리 내의 각 SELECT 문은 결과 집합에 유사한 데이터 유형을 가진 동일한 수의 필드가 있어야 합니다.
구문
Oracle/PLSQL에서 MINUS 연산자의 구문은 다음과 같습니다.
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
MINUS
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
매개변수 및 인수
expression1, expression2, ... expression_n
- 검색하려는 열 또는 계산입니다.
tables
- 레코드를 검색하려는 테이블입니다. FROM 절에 하나 이상의 테이블이 나열되어야 합니다.
WHERE conditions(WHERE 조건)
- 선택 사항입니다. 레코드를 선택하기 위해 충족해야 하는 조건입니다.
참고
- 두 SELECT 문에는 동일한 수의 표현식이 있어야 하며 데이터 유형이 유사해야 합니다.
예제 - 단일 표현식 사용
다음은 동일한 데이터 유형을 가진 하나의 필드를 반환하는 Oracle MINUS 연산자 예제입니다.
SELECT supplier_id
FROM suppliers
MINUS
SELECT supplier_id
FROM orders;
이 Oracle MINUS 예제는 suppliers 테이블에는 있지만 orders 테이블에는 없는 모든 supplier_id 값을 반환합니다. 즉, suppliers 테이블에 있고 orders 테이블에도 있는 supplier_id 값이 있는 경우 이 결과 집합에는 supplier_id 값이 나타나지 않습니다.
예제 - ORDER BY 사용
다음은 ORDER BY 절을 사용하는 MINUS 연산자 예제입니다.
SELECT supplier_id, supplier_name
FROM suppliers
WHERE state = 'Florida'
MINUS
SELECT company_id, company_name
FROM companies
WHERE company_id <= 400
ORDER BY 2;
이 MINUS 예제에서는 두 SELECT 문 간에 열 이름이 다르기 때문에 결과 집합에서 열의 위치에 따라 ORDER BY 절에서 열을 참조하는 것이 더 유리합니다. 이 예제에서는 ORDER BY 2
로 표시된 대로 supplier_name / company_name별로 결과를 오름차순으로 정렬했습니다.
supplier_name / company_name 필드는 결과 집합에서 2번 위치에 있습니다.
'Database > Oracle PLSQL' 카테고리의 다른 글
PLSQL PIVOT (0) | 2023.04.26 |
---|---|
PLSQL Subqueries (0) | 2023.04.26 |
PLSQL INTERSECT (0) | 2023.04.24 |
PLSQL UNION ALL (0) | 2023.04.23 |
PLSQL UNION (0) | 2023.04.23 |