mysql이나 oracle에 이런 기능이 있나요? 0 2 2,368

by 준일정 [SQL Query] mysql mssql oracle [2018.03.21 16:41:25]


ddd.PNG (6,445Bytes)

이런 데이터가 있는데 

결과값에 대해서 3번째 까지의 row 값만 꺼내고싶습니다. 

어떻게 해야할까요?

by 아발란체 [2018.03.21 16:48:01]

 

 

MySQL

SELECT * FROM 테이블명 LIMIT 1, 3

 

ORACLE

SELECT * FROM 테이블명 WHERE ROWNUM <= 3

 

 

이럴 경우 원하는 상위 3개가 나오지 않을 수 있습니다.

 

순서대로 저장이 되는 클러스터 인덱스라는 녀석이 있는 경우는 보장이 되는데 

MySQL, 오라클 경우는 서브 쿼리로 정렬을 해주고 밖에서 rownum 걸어야 약속된 상위 3개가 보장됩니다.

오라클 경우 IOT(Index-Organized Table), 클러스터 테이블 경우 이런 룰이 적용되며

MSSQL은 기본값이 들어온 순서로 저장됩니다.

 


by 준일정 [2018.03.21 16:55:19]

감사합니다!!!!!!!!!!!!!!!!!!!!!!!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입