반응형
DB별 SQL 결과 갯수제한하는 법을 기록합니다. (주로 페이징을 위해 쓰이는 쿼리입니다.
MySQL, Maria DB
-- limit [오프셋, 개수] 키워드 사용
-- 아래 예의 경우에는 c1 컬럼기준으로 내림차순 정렬한 뒤, 0번째부터 10개의 row를 가져오겠다는 뜻입니다.
select * from tbl order by c1 desc limit 0, 10;
MSSQL
-- top [갯수] 키워드 사용
-- 아래 예의 경우에는 c1 컬럼기준으로 내림차순 정렬한 뒤, 맨 위부터 10개의 row를 가져오겠다는 뜻입니다.
select top 10 * from tbl order by c1 desc limit 0, 10;
Oracle (오라클) / tibero (티베로, 티배로)
-- rownum 키워드 사용
-- 아래 예의 경우에는 c1 컬럼기준으로 내림차순 정렬한 뒤, 정렬된 테이블에서 1번째부터 10번째(10개) 데이터를 가져오겠다는 뜻입니다.
select * from (
select * from tbl order by c1 desc)
where 1<= rownum and rownum < =10;
-- 아래 예는 실행할 때마다 다른 결과를 얻습니다.
SELECT * FROM tbl WHERE ROWNUM <= 10 ORDER BY c1;
총평
다른 db에 비해 오라클 쿼리는 너무 장황한거 같습니다.
mysql쪽의 limit을 도입해줬으면 하는데, 페이징 기능 개발이 필요할때마다 타이핑도 많이 해야하고 보기에도 너무 안좋습니다.
이거 말고도 오라클이 불편한점이 많은데, 엔터프라이즈급에서는 대부분 오라클을 사용하는것으로 보이니 적응할 수 밖에 없는 현실이 안타깝습니다.
대기업의 횡포같은 느낌..
DB 별 SQL 결과 갯수제한, 페이징 처리, limit, offset, mysql, mariadb, mssql, oracle
#mysql,#mssql,#mariadb,#oracle,#tibero,#오라클,#티베로,#티배로,#sql,#limit,#offset,#rownum,#top
728x90
반응형
'개발팁' 카테고리의 다른 글
Chrome ERR_UNSAFE_PORT, 크롬 ERR_UNSAFE_PORT 해결방법, 접속불가 (0) | 2022.07.23 |
---|---|
fiddler(피들러) 사용법, fiddler classic 사용법, 친절한 fiddler 사용법, fiddler 기본 사용법, fiddler https나오게 (0) | 2022.07.02 |
code bad smell - 긴 switch 문과 polymorphism을 사용한 refactoring 기법 (0) | 2022.06.29 |
오라클 테이블스페이스 용량확인 , 사용량확인, oracle tablespace volume size (0) | 2022.05.24 |
MSSQL 테이블별 용량 확인쿼리 (0) | 2022.04.26 |
댓글