

-- 중첩질의 : 단순비교 --평균 급여를 구하는 쿼리문을 서브 쿼리로 사용하여 --평균 급여보다 더 많은 급여를 받는 사원을 검색 select * from emp -- ↓ 평균급여 where sal > (select avg(sal)from emp) ; -- SCOTT 사원의 같은 부서에 근무하는 사원의 리스트를 출력 select deptno from emp where ename='SCOTT'; --20 select ename, deptno from emp where deptno=(select deptno from emp where ename='SCOTT');

-- sal>3000이상 받는 사원이 소속된 부서 select distinct deptno from emp where sal >=3000; select * from emp --where deptno=10 or deptno=20 where deptno in (select distinct deptno from emp where sal >=3000) ;

--30번 소속 사원들 중에서 급여를 가장 많이 받는 사원보다 --더 많은 급여를 받는 사람의 이름, 급여를 출력하는 쿼리문을 작성해 봅시다. select sal from emp where deptno=30; select ename, sal from emp where sal> all (select sal from emp where deptno=30); -- 모든게 다 만족해야할 때

--다음은 부서번호가 30번인 사원들의 급여 중 --가장 작은 값(950)보다 많은 급여를 받는 사원의 이름, --급여를 출력하는 예제를 작성해 봅시다. select ename, sal from emp where sal> any (select sal from emp where deptno=30);

-- ROWNUM #입력순 (로우넘 날짜순X) select rownum, empno, ename, hiredate from emp order by hiredate ; -- 기준에 맞춰 몇개 뽑아내기 select rownum, empno, ename, hiredate from emp where rownum<4 order by hiredate ; select rownum, empno, ename, hiredate from emp order by hiredate ; -- ROWNUM 날짜순 O select rownum, empno, ename, hiredate from (select rownum, empno, ename, hiredate from emp order by hiredate desc) where rownum<4 -- 입사일이 제일 최근인 세명 (desc) ; -- 가장 급여를 많이 받는 사원 3명을 출력하자 select rownum, ename, sal from emp order by sal desc; select rownum, ename, sal from(select rownum, ename, sal from emp order by sal desc) where rownum<4 ;
'DB > Oracle SQL' 카테고리의 다른 글
[ORACLE SQL] DDL _ALTER TABLE / 테이블 칼럼 추가/변경/삭제 (0) | 2020.11.12 |
---|---|
[ORACLE SQL] DDL _ CREATE TABLE / 테이블 생성 (0) | 2020.11.12 |
[ORACLE SQL] 서브쿼리 / 부속질의 (0) | 2020.11.11 |
[ORACLE SQL] 조인 (0) | 2020.11.11 |
[ORACLE SQL] 그룹함수 (0) | 2020.11.10 |
[ORACLE SQL] 함수 / DECODE / CASE / TO_CHAR / TO_NUMBER (0) | 2020.11.10 |
[ORACLE SQL] 정렬을 위한 order by (0) | 2020.11.09 |