MySQL
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1;
MySQL은 LIMIT을 이용해서 처리할 수 있습니다.
Oracle
SELECT NAME
FROM (
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME ASC
)
WHERE ROWNUM <= 1;
Oracle은 ROWNUM을 이용해서 처리할 수 있습니다.
LIMIT과 ROWNUM은 언뜻 보면 같아 보이지만, 동작에서 큰 차이가 있습니다.
예를 들어, LIMIT은 ORDER BY 실행 후 결과를 제한합니다. 하지만, ROWNUM은 ORDER BY 실행 전에 번호가 매겨지므로, 정렬된 결과에서 행을 제한하려면 서브쿼리를 사용해야 합니다.
-- MySQL
SELECT * FROM table LIMIT 10; -- 상위 10개
SELECT * FROM table LIMIT 5, 10; -- 6번째부터 10개
-- Oracle
SELECT * FROM table WHERE ROWNUM <= 10; -- 상위 10개
SELECT * FROM (
SELECT a.*, ROWNUM AS rnum
FROM table a
) WHERE rnum BETWEEN 6 AND 15; -- 6번째부터 10개
'Backend > SQL' 카테고리의 다른 글
[프로그래머스_SQL] NULL 처리하기 #IFNULL #NVL (1) | 2025.02.09 |
---|---|
[프로그래머스_SQL] 연도별 대장균 크기의 편차 구하기 #JOIN (0) | 2025.02.07 |
[프로그래머스_SQL] 12세 이하인 여자 환자 목록 출력하기 IFNULL, NVL (3) | 2025.01.04 |
[프로그래머스_SQL] 과일로 만든 아이스크림 고르기 (1) | 2024.12.27 |
[프로그래머스_SQL] 평균 일일 대여 요금 구하기 (0) | 2024.12.27 |