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 |