[Oracle] 집합연산자(SET 연산자)

chael_lo·2021년 7월 5일
0

Oracle

목록 보기
16/17

집합연산자(SET 연산자)

두 개의 SELECT 명령에 대한 검색결과를 이용하여 집합 결과값을 제공하는 연산자다.

UNION(합집합)

두 개의 SELECT 명령으로 검색된 행을 합한 결과를 제공한다(중복행 제외).
집합연신자를 사용할 경우 두 개의 SELECT 명령의 검색대상은 갯수와 자료형이 반드시 동일하도록 작성한다.

SELECT NAME FROM SUPER_HIRO
UNION
SELECT NAME FROM MARVEL_HIRO;

UNION ALL

두 개의 SELECT 명령으로 검색된 행을 합한 결과를 제공한다(중복행 포함).

SELECT NAME FROM SUPER_HIRO
UNION ALL
SELECT NAME FROM MARVEL_HIRO;

INTERSECT(교집합)

두 개의 SELECT 명령으로 검색된 중복행의 결과를 제공한다.

SELECT NAME FROM SUPER_HIRO
INTERSECT
SELECT NAME FROM MARVEL_HIRO;

MINUS(차집합)

첫번째 SELECT 명령의 검색 결과에서 두번째 SELECT 명령의 검색 결과를 제외한 행 제공한다.

SELECT NAME FROM SUPER_HIRO
MINUS
SELECT NAME FROM MARVEL_HIRO;

집합연산자 특징

집합연산자 사용시 두 개의 SELECT 명령에 대한 검색대상의 갯수 또는 자료형이 다른 경우 에러가 발생한다.

SELECT NAME FROM SUPER_HIRO 
UNION
SELECT GRADE FROM MARVEL_HIRO;

집합연산자 사용시 검색대상의 갯수가 다른 경우 컬럼값 대신 동일한 자료형의 임의값 또는 NULL를 사용하여 집합 검색 결과 제공한다.

SELECT NAME,0 FROM SUPER_HIRO
UNION
SELECT NAME,GRADE FROM MARVEL_HIRO;

집합연산자 사용시 검색대상의 자료형이 다른 경우 변환함수를 사용하여 같은 자료형으로 변경하여 집합 검색 결과를 제공한다.

SELECT NAME FROM SUPER_HIRO
UNION
SELECT TO_CHAR(GRADE,'0') FROM MARVEL_HIRO;

profile
천천히 꾸준히

0개의 댓글