select ename, sal, job
from emp
where job='SALESMAN';
select rownum as 번호, ename, sal, job
from emp
where job='SALESMAN';
💡 rownum 함수는 출력되는 결과에 번호를 붙여줌
select rownum 번호, ename, sal, deptno
from emp
where deptno in(10,20);
select *
from emp
where rownum <= 3;
💡 ROWNUM 은 대용량 테이블의 데이터의 일부를 빨리 확인하고 싶을 때 유용
select rownum 번호, ename, sal, job
from emp
where job='SALESMAN';
⚠️ 잘못된 코드
select rownum 번호, ename, sal, job
from emp
where job='SALESMAN'
order by sal desc;
실행순서가 from - where - select - order by
라서
order by절이 가장 마지막에 실행되니까
번호가 순서대로 안나옴
✔️ 답: 방법 1
select rownum 번호, ename, sal, job
from (
select ename, sal, job
from emp
where job='SALESMAN'
order by sal desc
);
from절의 서브쿼리
오라클메모리(PGA)
💡 실행순서
: 서브쿼리 (from -> where -> select -> order by) -> 메인쿼리 select
✔️ 답: 방법 2
select row_number() over (order by sal desc) 번호, ename, sal, job
from emp
where job='SALESMAN';
💡 row_number() 함수를 사용하면 서브쿼리를 쓰지 않아도 됨
row_number()와 같은 데이터 분석함수(윈도우 함수)는 select절에만 사용가능
select row_number() over (order by age desc) 번호, ename, age, telecom
from emp21
where telecom='SKT';