- 합집합
- union : 두 집합을 더해서 결과 출력. 중복 값 제거하고 정렬됨. - union all : 두 집합을 더해서 결과를 출력. 중복 데이터 조회 가능.
💡 주의사항
1. 칼럼의 개수가 다를 경우 오류 발생.
2. 비교되는 칼럼 끼리의 데이터 타입이 다를 경우 오류 발생.
예시 : 교수 중 상여금이 있는 경우는 급여합계(급여+상여금),
상여금이 없는 경우는 급여합계(급여)로 조회하기.
교수의 교수번호,이름,부서코드,급여,급여합계를 출력.
select profno,name,deptno,pay,pay+bonus 급여합계 from professor where bonus is not null
union
select profno,name,deptno,pay,pay 급여합계 form professor where bonus is null
- union 사용 : 이 경우 정렬 되어서 결과가 도출된다.
만약 중복된 내용이 있다면 제거되어서 결과 도출
예시 :
교수 중 상여금이 있는 경우는 급여합계(급여+상여금),
상여금이 없는 경우는 급여합계(급여)로 조회하기.
교수의 교수번호,이름,부서코드,급여,급여합계를 출력.
select profno,name,deptno,pay,pay+bonus 급여합계 from professor where bonus is not null
union all
select profno,name,deptno,pay,pay 급여합계 form professor where bonus is null
- union all 사용 : 위에서 조회된 내용과 아래에서 조회된 내용을 합해서 나열해준다.
중복의 경우 자동 제거해주지 않음.
문제 :
1. 101학과 학생의 학번,이름,학과번호1와 101학과 교수의 교수번호,이름,학과번호를 출력하기.
select studno,name,deptno1 from student where deptno1 = 101
union
select profno.name,deptno from professor where deptno = 101
'수업(국비지원) > Oracle' 카테고리의 다른 글
| [Oracle] SQL 단일행 함수 - 문자 함수(문자열의 길이) length, lengthb, substr, instr (0) | 2023.04.14 |
|---|---|
| [Oracle] SQL 단일행 함수 - 문자 함수(대소문자 변환 함수) initcap, upper, lower (0) | 2023.04.14 |
| [Oracle] order by 구문 (0) | 2023.04.13 |
| [Oracle] Null (0) | 2023.04.13 |
| [Oracle] like, not like 연산자 (0) | 2023.04.13 |