본문 바로가기

Oracle14

[ Oracle ] Oracle Self Join 예제, 쓰는 이유 Self Join 이란, 자기 자신과 Join 하는 것이다. 어떤 경우에서 Self join 을 사용하는지를 알아보자. 위 사진은 emp 테이블을 출력한 것이다. 여기서, 매니저 사번, 매니저명, 부하직원사번, 부하직원명을 매니저사번별로 출력하려면 어떻게 해야할까? 예를 들어서, SMITH 의 매니저는 MGR 컬럼번호 7902를 가지고 있는 FORD 가 될 것이다. ALLEN 의 매니저는 7698 이라는 mgr 번호를 가진 BLAKE 가 될것이고. 이럴 때 self join 을 이용하여 마치 mgr 컬럼을 가지고 있는 테이블이 하나 존재하는 것 마냥 쿼리를 짜주면 된다. select e1.mgr, e2.ename, e1.empno, e1.ename from emp e1 join emp e2 on e1.m.. 2021. 3. 29.
[ Oracle ] Oracle CTAS 기법으로 테이블 복사하기 CTAS 란? : copy table as 를 의미한다. create table testemp as select * from emp; select * from testemp; desc user_constraints; 첫번째 sql 문을 실행하면 테이블이 복사된다. 이 상태로 select 문을 실행시킨다. emp 테이블이 복사된 것을 알 수 있다. 2021. 3. 15.
[ Oracle ] Oracle sql case 문 예제 예제 문제 : -- emp 에서 comm 값이 null 인 경우는 '해당 없음'으로, -- 아니면 원래 값이 출력되도록 empno,ename, sal, comm -- 을 출력하라! (nvl,decode,case 사용) select empno, ename, sal, case when comm is null then '해당없음' when comm=0 then 'zero' when comm>=300 and comm 2021. 3. 15.
[ Oracle ] null 함수 (nvl 함수), decode 함수 nvl 함수 nvl 예제 문제 : emp 테이블에서 sal * comm 값이 100000보다 작은 사원만 empno, ename,sal, comm, sal*comm 을 출력하라. comm 값이 null 값인 경우가 있다면, where 절을 어떻게써야할지 애매할 때가 있다. select empno, ename, sal, comm, rpad(to_char(sal*comm,'999,999,999'),12) as 지급금액 from emp where sal*nvl(comm,0) 2021. 3. 15.