- 다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL 책을 보고 작성하였습니다.
집합연산자 INTERSECT / MINUS
- INTERSECT
- INTERSECT 연산자는 두 집합의 교집합 부분을 찾아내는 집합 연산자 입니다.
아래의 예는 STUDENT 테이블을 사용하여 101번 학과와 201번 학과를 복수전공하는
사람의 이름을 출력하는 화면입니다.
- INTERSECT 연산자는 두 집합의 교집합 부분을 찾아내는 집합 연산자 입니다.
SELECT STUDNO, NAME
FROM STUDENT
WHERE DEPTNO1 = 101
INTERSECT
SELECT STUDNO, NAME
FROM STUDENT
WHERE DEPTNO2 = 201;
-
INTERSECT 는 정렬을 동반하게 되는 연산자이므로 많은 데이터를 대상으로 할 경우
속도가 느려진다. -
MINUS
- MINUS 연산자는 큰 집합에서 작은 집합을 빼는 집합 연산자 입니다.
EMP테이블에서 직원들의 급여를 인상해 주기 위한 명단을 출력하려고 하는데,
현자 급여가 2500 이하인 사람만을 대상으로 하고싶으면 아래 처럼 사용하면 됩니다.
- MINUS 연산자는 큰 집합에서 작은 집합을 빼는 집합 연산자 입니다.
SELECT EMPNO, ENAME, SAL
FROM EMP
MINUS
SELECT EMPNO, ENAME, SAL
FROM EMP
WHERE SAL > 2500;
- 집합연산자를 사용 할 때 두 개 쿼리 컬럼 결과가 다르거나 데이터 형이 다르면
에러가 발생합니다.- ORA-01789 query block has incorrect number of result columns
'DataBase > Oracle' 카테고리의 다른 글
Count 내 조건을 적용하기 (0) | 2018.10.30 |
---|---|
집합 연산자 UNION / UNION ALL (0) | 2018.07.13 |
ORA-12899: value too large for column 오류 대처방법 (0) | 2018.07.13 |
Oracle cmd창에서 줄이 깨져 나올때 설정방법 (0) | 2018.07.12 |
hr / scott 계정 설정 (0) | 2018.07.12 |