레이블이 ROWNUM인 게시물을 표시합니다. 모든 게시물 표시
레이블이 ROWNUM인 게시물을 표시합니다. 모든 게시물 표시

2008년 2월 18일 월요일

MS-SQL 에 Oralce의 ROWNUM 처럼 구현하기..


Oracle 에서는 rownum >= 10 이런식으로 10개씩 추출할수 있다.

이걸 이용해서 게시판 글수를 추출하기가 편한데, MS-SQL은 그게 없다.

그래서 TOP과 NOT IN을 이용하여 아래와 같은 방법으로 하면 가능하다.


SELECT * FROM (
 SELECT TOP 10 * FROM (
  SELECT * FROM T_BOARD
 ) b
 WHERE SEQ NOT IN (
  SELECT TOP 10 SEQ FROM T_BOARD ORDER BY SEQ DESC
 )
 ORDER BY SEQ DESC
) a


몇개 단위로 보여줄껀지, 빨간 파란색 숫자를 이용하면 가능할 것이다.

2007년 10월 15일 월요일

ROWNUM 으로 조건절...



ROWNUM
은 쿼리내에서 사용 가능한 가상컬럼입니다.
ROWNUM에는 숫자 1,2,3,4,...N의 값이 할당됩니다. 여기서 N은 ROWNUM과 함께 사용하는 로우의 수를 의미합니다. ROWNUM의 값은 ROW에 영구적으로 할당되지 않습니다. 테이블의 로우는 숫자와 연계되어 참조될 수 없습니다. 따라서 테이블에서 "ROW 5"를 요청할 수 있는 방법은 없습니다.

ROWNUM 값은 쿼리의 조건절이 처리되고 한 이후, 그리고 SORT, AGGREGATION 수행되기 이전에 할당됩니다.


-----------------------------------------------------------------------------------------------


[code type=sql]select * from STUDENT
     where rownum 10 between 100
[/code]

이렇게 하면 데이터가 안나온다..

쿼리를 한번더 묶고, rownum을 데이터화 시키고 사용한다..

[code type=sql]select * from (
     select rownum rnum, NAME, GRADE, AGE from STUDENT
) where rnum 10 between 100[/code]



빙고~