반응형
오라클에서는 Inline View와 Rownum을 이용하여 페이징 처리를 합니다.
SQLite는 더 편리하게 Limit Offset을 활용하여 더욱 쉽게 처리 할 수 있습니다.
1. 전체 데이터
- 아래의 쿼리는 특정위치(위도/경도)에서 가까운 순서로 정렬하는 쿼리입니다.
SELECT NAME, LAT, LON FROM SCHOOL_LOC
ORDER BY ABS(LAT - 37.5670135) * ABS(LAT - 37.5670135)
+ ABS(LON - 126.9783740) * ABS(LON - 126.9783740)
2. LIMIT를 이용한 상위 2개만 얻기
SELECT NAME, LAT, LON FROM SCHOOL_LOC
ORDER BY ABS(LAT - 37.5670135) * ABS(LAT - 37.5670135)
+ ABS(LON - 126.9783740) * ABS(LON - 126.9783740)
LIMIT 2
3. LIMIT OFFSET을 이용한 페이지 처리
- OFFSET은 시작 할 Row의 Index로 LIMIT의 수에 페이지 Index를 곱하면 됩니다.
[첫페이지 쿼리]
SELECT NAME, LAT, LON FROM SCHOOL_LOC
ORDER BY ABS(LAT - 37.5670135) * ABS(LAT - 37.5670135)
+ ABS(LON - 126.9783740) * ABS(LON - 126.9783740)
LIMIT 2 OFFSET 0 * 2
[두번째페이지 쿼리]
SELECT NAME, LAT, LON FROM SCHOOL_LOC
ORDER BY ABS(LAT - 37.5670135) * ABS(LAT - 37.5670135)
+ ABS(LON - 126.9783740) * ABS(LON - 126.9783740)
LIMIT 2 OFFSET 1 * 2
반응형
'데이터베이스 > SQLite' 카테고리의 다른 글
맥북에서 SQLite 용량 줄이기 (0) | 2022.11.27 |
---|---|
SQLite 오라클의 NVL과 같은 NULL 처리 (0) | 2021.03.04 |
SQLite - Select 결과 JSON으로 변경하기 (0) | 2021.03.02 |
SQLite에서 오라클의 DECODE 사용하기(CASE WHEN...) (0) | 2021.02.19 |
SQLite inert or replace(오라클/MS-SQL Merge 기능) (0) | 2021.02.08 |
댓글