ROWNUM : 쿼리 내에서 사용 가능한 가상 컬럼. (확인하고자 하는 데이터에 가상으로 번호를 매김)
예문 :
회원 목목에서 상위 5명만 조회 (상위 5개의 데이터)
SELECT ROWNUM, NOTICE.*
FROM NOTICE
WHERE ROWNUM BETWEEN 1 AND 5;
ORDER BY : 특정 값에 대한 순위를 매기고 싶을 때 사용
- ASC 를 함께 쓰면 오름차순
- DESC 를 함께 쓰면 내림차순
예문 :
SELECT ROWNUM, N.*
FROM (
SELECT *
FROM NOTICE
ORDER BY REGDATE DESC
) N;
ORDER BY 절을 사용해서 특정 값에 대한 순위를 매겼을 때, 동일한 등수가 나온 경우에는
ROW_NUMBER / RANK / DENSE_RANK 절을 사용해서 공동 등수를 동일한 순위로 매기거나 또는 순위를 다르게 매기도록 함 (OVER* 절과 함께 사용)
ROW_NUMBER( )
예문 :
SELECT
ROW_NUMBER( ) OVER (ORDER BY REGDATE DESC) NUM,
N.*
FROM NOTICE N;
RANK( )
예문 :
SELECT
ROW_NUMBER() OVER (ORDER BY REGDATE DESC) NUM,
RANK() OVER (ORDER BY HIT DESC) RANK,
N.*
FROM NOTICE N;
DENSE_RANK( )
예문 :
SELECT
ROW_NUMBER() OVER (ORDER BY REGDATE DESC) NUM,
DENSE_RANK() OVER (ORDER BY HIT DESC) "RANK",
N.*
FROM NOTICE N; -- 공동 랭킹이 있을 경우에 하나의 등수로 봄
반응형
'Web programming > SQL & DB' 카테고리의 다른 글
집합 연산자로 데이터 레코드를 합하여 출력 (UNION, UNION ALL, INTERSECT, MINUS) (0) | 2020.04.16 |
---|---|
DISTINCT 절과 GROUP BY 절의 차이 (0) | 2020.04.16 |
서브쿼리와 서브쿼리의 중첩 / 쿼리문 작성 및 실행 순서 (0) | 2020.04.13 |
관계 연산자, 패턴 연산자, 정규 표현식 (0) | 2020.04.10 |
데이터를 삽입하는 명령어 DML (0) | 2020.04.07 |