SQL | 마이너스 연산자

SQL | 마이너스 연산자

MINUS 연산자는 두 가지와 함께 사용됩니다. SELECT 두 번째 쿼리에는 없는 첫 번째 쿼리의 행만 반환하는 문입니다. 모든 공통 행을 필터링하고 첫 번째 결과 집합에서 고유한 행만 유지합니다.

회화적 표현 :

SQL 빼기

위 다이어그램에서 볼 수 있듯이 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 대안으로 연산자.
퀴즈 만들기