: Oracle의 ROWNUM은 컬럼과 비슷한 성격의 Pseudo column으로서 SQLㅊ처리 결과 집합의 각 행에 대해 임시로 부여되는 일련번호이다.
테이블이나 집합에서 원하는 만큼의 행만 가져오고 싶을때 WHERE절에서 행의 개수를 제한하는 목적으로 사용한다.
순위가 높은 N개의 로우를 출력하기 위해 ORDER BY절과 WHERE절의 ROWNUM조건을 같이 사용하는 경우가 있다. 이 두 조건으로는 원하는 결과를 얻을 수 없다. Oracle의 경우 데이터의 일부가 먼저 추출된 후 데이터에 대한 정렬 작업이 일어나므로 주의해야한다.
사원테이블에서 급여가 높은 3명만 내림차순으로 출력
입력✏️
SELECT ENAME
, SAL
FROM (SELECT ENAME, SAL
FROM EMP
ORDER BY SAL DESC)
WHERE ROWNUM <= 3;
출력💻
: SQL Server는 TOP절을 사용해 결과 집합으로 행의 수를 제한할 수 있다.