DataBase

TOP, LIMIT, ROWNUM

Beencle 2023. 3. 20. 15:15

- 반환할 레코드 수를 지정하는 데 사용됩니다.

- 수천 개의 레코드가 있는 대형 테이블에서 유용합니다. 많은 수의 레코드를 반환하면 성능에 영향을 줄 수 있습니다.

 

참고: 데이터 베이스에 따라 문법이 다르다.

TOP = MS SQL,

LIMIT = MY SQL,

ROWNUM = ORACLE


MS SQL

- top 예제

SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;

top 뒤에 원하는 컬럼의 갯수 혹은 percent를 적어주면 된다.


MY SQL

- LIMIT 예제

SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;

마지막에 LIMIT를 넣어주고 원하는 갯수를 적어주면 된다.


ORACLE

- ROWNUM 예제

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;

Select 마지막에 where 조건에 ROWNUM과 숫자를 넣어주면 된다. 오라클에서는 주의해야하는 점이 where문 뒤에 order by desc를 한다고 해서 우리가 원하는 내림차순이 나오지 않는다. 이유는 이미 where에서 정렬이 된 상태에서 rownum이 생기기 때문에 따로 from에 사용되는 table_name 부분을 서브쿼리로 만들어야 한다.

SELECT *
FROM (SELECT column_name(s) FROM table_name ORDER BY column_name(s))
WHERE ROWNUM <= number;