개발 관련 조각/SQL2011.02.15 17:58

mssql 도 오라클처럼 rownum을 사용할 수 있습니다. 조금 다르지만 사용가능합니다.
예)
- 한 페이지에 10개씩 출력되는 게시판의 첫번째 페이지이고
- ExTable ( exid varchar(20), regdate datetime) 라고 가정하고.
- 페이지 스케일이 10 row 일때
 
SELECT exid, regdate
FROM ( 
SELECT Row_Number() OVER (ORDER BY regdate DESC) AS rownum, exid, regdate FROM ExTable
) Table
WHERE rownum BETWEEN [(페이지번호-1) * 스케일+1] AND [페이지번호 * 스케일]

이렇게 쓰면 됩니다.
'not in' 에 서브쿼리로 구현한 것 본적이 있는데 페이지 수가 많아지면 골치아파 집니다.
not in은 절대 비추입니다.

단 MSSQL 2000 에서는 안되는걸로 알고있습니다.
신고
Posted by 로보찌빠 네롱메롱별인
개발 관련 조각/SQL2011.02.11 16:29

 

오라클

     SELECT * FROM [TABLE] WHERE ROWNUM <= 10

 

MSSQL

     SELECT TOP 10 * FROM [TABLE]

신고
Posted by 로보찌빠 네롱메롱별인

티스토리 툴바