SQL | 마이너스 연산자
MINUS 연산자는 두 가지와 함께 사용됩니다. SELECT 두 번째 쿼리에는 없는 첫 번째 쿼리의 행만 반환하는 문입니다. 모든 공통 행을 필터링하고 첫 번째 결과 집합에서 고유한 행만 유지합니다.
회화적 표현 :
위 다이어그램에서 볼 수 있듯이 MINUS 연산자는 Table1의 결과 집합에는 있고 Table2의 결과 집합에는 없는 행만 반환합니다.
통사론:
SELECT column1 column2 ... columnN
FROM table_name1
[WHERE condition]
MINUS
SELECT column1 column2 ... columnN
FROM table_name2
[WHERE condition];위 구문에서
- 첫 번째 선택: 선택적으로 WHERE 조건으로 필터링된 table_name1에서 지정된 열(column1,column2...columnN)을 검색합니다.
- 마이너스: MINUS 연산자는 두 번째 쿼리에 없는 첫 번째 쿼리의 행을 반환합니다.
- 두 번째 선택: 선택적으로 WHERE 조건으로 필터링된 table_name2에서 동일한 열을 검색합니다.
- 산출: 결과에는 table_name2에 없는 table_name1의 행이 포함됩니다. 최종 출력에서 중복 항목이 제거됩니다.
테이블 :
표 1
| 이름 | 주소 | 나이 | 등급 |
|---|---|---|---|
| 가혹한 | 델리 | 20 | 에이 |
| 가우라브 | 자이푸르 | 21 | 비 |
| 관행 | 뭄바이 | 21 | 에이 |
| 단라지 | 콜카타 | 22 | 비 |
표 2
| 이름 | 나이 | 핸드폰 | 등급 |
|---|---|---|---|
| 아카쉬 | 20 | XXXXXXXXX | 에이 |
| 디라지 | 21 | XXXXXXXXX | 비 |
| 바이바브 | 21 | XXXXXXXXX | 에이 |
| 단라지 | 22 | XXXXXXXXX | 비 |
쿼리 :
SELECT NAME AGE GRADE
FROM Table1
MINUS
SELECT NAME AGE GRADE
FROM Table2;
산출:
| 이름 | 나이 | 등급 |
|---|---|---|
| 가혹한 | 20 | 에이 |
| 가우라브 | 21 | 비 |
| 관행 | 21 | 에이 |
이 쿼리에서:
- Table1에 고유한 행만 반환합니다.
- 두 테이블의 마지막 행이 동일한 경우 결과에서 제외됩니다. 따라서 Table1의 처음 세 행만 반환됩니다.
퀴즈 만들기메모 :
- MINUS 연산자는 Oracle에서는 지원되지만 SQL Server 또는 PostgreSQL에서는 지원되지 않습니다.
- 해당 데이터베이스의 경우
EXCEPT대안으로 연산자.