본문 바로가기

Program/MSSQL

mssql 쿼리를 이용한 mysql limit 기법...

not in 을 where 절에 줘서 만드는 것 보다 실행속도는 빠르다고 함.


[개념]


mysql 처럼 중간에서 짤라낼순 없다는 단점을 안고 있지만 그런저런 쓸만하다.


한페이지에 보이려는 글의 갯수가 10개일때 두번째 페이지에서 보여줘야 할 글은 11부터 20까지이다.


그럴경우...


1. 먼저 글을 20개를 뽑아낸다.

2. 원래 정렬하려고 했던 것과는 반대로 역정렬한다.

3. 10개를 뽑아낸다.(뒤에서 거꾸로 10개를 뽑아냄과 같다.)

4. 이를 다시 원래 정렬방식으로 정렬한다.


[쿼리 예]


SELECT * FROM (
SELECT TOP 10 * FROM (
SELECT TOP 20 * FROM tb_zip ORDER BY zipcode
) a ORDER BY zipcode desc
) b ORDER BY zipcode asc


아직 where 절에 조건주는 것과 order by 에 복수로 정렬하는 건 안해봐서 여기까지만..


페이지가 커질수록 덩치가 커지는게 좀 걸린다.

'Program > MSSQL' 카테고리의 다른 글

MSsql 버젼 확인  (0) 2020.02.15
MSSQL 쿼리 샘플  (0) 2008.01.14
MSSQL-쿼리팁 INSERT, UPDATE  (0) 2008.01.14
페이징 성능 향상 기법 MSSQL 쿼리  (0) 2008.01.14