database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 4465 게시물 읽기
No. 4465
oracle rownum 처럼 몇줄에서 몇줄까지 출력
작성자
서성기(skseo76)
작성일
2008-09-29 17:03ⓒ
2008-09-30 15:48ⓜ
조회수
6,871

board 테이블의 제목이 '테스트입니다' 인 것 중 10~19 행 출력하도록 하려면

검색조건은 제목명이 같은 중에서 페이징 처리 시...
 

oracle

 

SELECT * 

FROM    ( SELECT ROWNUM rnum, b.*

                FROM   board b

                WHERE title='테스트입니다.'

                ORDER by title desc

             ) a

WHERE  a.rnum between 10 and 19

 

 

ms-sql

  SELECT TOP 10 * FROM ExampleBoard
  WHERE id NOT IN (
                   SELECT TOP 20 id FROM ExampleBoard
                   WHERE ARTICLESUBJECT = '1'
                   ORDER BY id DESC
                   )
       
  ORDER BY id DESC

이렇게 해도 안되구요.

  SELECT TOP 10 * FROM ExampleBoard
  WHERE id NOT IN (
                   SELECT TOP 20 id FROM ExampleBoard 
                   ORDER BY id DESC
                   )
   AND ARTICLESUBJECT = '1'
        
  ORDER BY id DESC

이렇게 해도 안되네요. 

감사합니다.


이 글에 대한 댓글이 총 2건 있습니다.

SELECT *

FROM ( SELECT ROW_NUMBER() OVER (ORDER BY COLUMN) AS ROW_NUM,

                          *

                FROM ( SELECT COLUMN

                             FROM TABLE

                             WHERE  ~  )

             )

WHERE ROW_NUM BETWEEN 10 AND 20


이러면 되지 않을까용?

??님이 2008-10-01 17:38에 작성한 댓글입니다. Edit

-- articlesubject = '1'이 조건인가여 ?

10 번에서 19번까지 구할경우

--- 10 - 19 번까지는 10개 이니까 Top 10을 한다.

SELECT TOP 10 * FROM ExampleBoard
  WHERE id NOT IN (
                   -- 10 번 이전 까지가 9 개 이니가 Top를 해서 이전 9개를 제거한다.
                   SELECT TOP 9 id FROM ExampleBoard
                   WHERE ARTICLESUBJECT = '1'
                   ORDER BY id DESC
                   )
  where articlesubject = '1'
  ORDER BY id DESC


-- 33번에서 53번 까지 할경우
--- 33 - 53 번까지는 21개 이니까 Top 21을 한다.
SELECT TOP 21 * FROM ExampleBoard
  WHERE id NOT IN (
                   -- 33 번 이전 까지가 32 개 이니가 Top를 해서 이전 32개를 제거한다.
                   SELECT TOP 32id FROM ExampleBoard
                   WHERE ARTICLESUBJECT = '1'
                   ORDER BY id DESC
                   )
  where articlesubject = '1'
  ORDER BY id DESC

이렇게 하시면 됩니다.
이해가 되셨는지여.
그럼 이만

이종명(ljjangx)님이 2008-10-02 14:18에 작성한 댓글입니다.
이 댓글은 2008-10-02 14:19에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
4468MS-SQL 2000 엔터프라이즈와 스탠다드의 호환? [2]
초보
2008-10-03
5794
4467MS-SQL에서 중복된 DATETIME 비교하여 나타내는 방법을 잘모르겠어요..고수님들 도와주십쇼ㅠㅠ [3]
2008-10-02
6083
4466MS-SQL 라이센스 관련...(CAL) [1]
GMKJH
2008-09-29
6846
4465oracle rownum 처럼 몇줄에서 몇줄까지 출력 [2]
서성기
2008-09-29
6871
4463테이블에서 자료삭제후 정리하는 작업은 없나요. [1]
궁금해
2008-09-26
4985
4462mssql 2000 트리구조 질문
예슬이
2008-09-26
5677
4461Top 1의 결과를 컬럼의 이름으로 사용하고 싶은데요..
초보자
2008-09-26
4729
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다