UNION으로 많이 연결하여 사용 할 경우 SQL성능을 떨어뜨린다. (DECODE, CASE 등을
이용하여 간결하게 작성해야 함)
UNION / UNION ALL
example 1
SELECT STUDNO, NAME, DEPTNO1, 1
FROM STUDENT WHERE DEPTNO1 = 101
UNION
SELECT PROFNO, NAME, DEPTNO, 2
FROM PROFESSOR
WHERE DEPTNO = 101;
실행결과
오른쪽 1로 표시되는것은 위 쿼리에 대한 결과값이고, 2는 아래 쿼리에 대한 결과값이다.
STUDNO
NAME
DEPTNO1
1
1
1001
조인형
101
2
2
1002
박승곤
101
2
3
1003
송도권
101
2
4
9411
서진수
101
1
5
9511
김신영
101
1
6
9611
일지매
101
1
7
9711
이윤나
101
1
example 2
SELECT STUDNO, NAME
FROM STUDENT
WHERE DEPTNO1 = 101
UNION
SELECT STUDNO, NAME
FROM STUDENT WHERE DEPTNO2 = 201;
SELECT STUDNO, NAME
FROM STUDENT
WHERE DEPTNO1 = 101
UNION ALL
SELECT STUDNO, NAME
FROM STUDENT WHERE DEPTNO2 = 201;
실행결과
UNION 결과와 UNION ALL 쿼리의 실행 결과이다.
UNION ALL 을 사용했을 때 중복된 값이 나오는것을 확인 할 수 있다.