Q&A

  • 한정된 select 하기
제가 사용하는 환경은 오라클입니다.

특정테이블이 있는데, 여기엔 프라이머키로 잡은 것이 없는 보통 테이블이 있습니다.

레코드가 엄청나게 많은데, 이를 10개씩 혹은 20개씩 select 해서 보여주고 싶습니다.

여기 한델게시판처럼 페이지단위로 나뉘는 것 처럼 말입니다.



MS-SQL에서는 TOP라는 것과 keynum(이것이 내장함수(?)인지 아니면 프라이머키로 잡은 필드인지 구분이 안가지만)으로 10개 단위로 자르는 방법은 보았습니다. 그렇지만, 필요한 것은 오라클에서 입니다. -_-;;



뉴스그룹에서 오라클로 자르는 방식을 기술해 놓았던데, rownum을 이용한 방법이더군요.

select * from

(select * from 테이블

where rownum < 21 )

where prikey > 10 ; 여기서 prikey는 프라이머키로, 실제 필드키



위의 SQL문에서 예상되는 결과는 11 - 20 번째 레코드를 불러오는 것입니다만,

만약 11-20번째에서 prikey중에 15,16번이 없다고 하면 8개의 레코드가 나타날 것입니다.

이렇게 하는 것이 아니라, 그냥 레코드 10개씩 불러오는 방법은 없는지요?



오라클에서 rownum을 사용할때, 등호를 > 쪽으로 하면 안된다고 하더군요.

언제나 fail될것이라고 하더군요.

예로

select * from 테이블

where rownum > 10 or where rownum >= 10

이렇게 하면 언제나 리턴되는것은 '레코드가 없습니다' 라고 나오더군요.

고로 select * from 테이블

where rownum between 10 and 20

위의 SQL문도 안되더군요. ㅠ.ㅠ



도움을 부탁드립니다.

1  COMMENTS
  • Profile
    망치 2001.01.31 00:59
    강정한 wrote:

    > 제가 사용하는 환경은 오라클입니다.

    > 특정테이블이 있는데, 여기엔 프라이머키로 잡은 것이 없는 보통 테이블이 있습니다.

    > 레코드가 엄청나게 많은데, 이를 10개씩 혹은 20개씩 select 해서 보여주고 싶습니다.

    > 여기 한델게시판처럼 페이지단위로 나뉘는 것 처럼 말입니다.

    >

    > MS-SQL에서는 TOP라는 것과 keynum(이것이 내장함수(?)인지 아니면 프라이머키로 잡은 필드인지 구분이 안가지만)으로 10개 단위로 자르는 방법은 보았습니다. 그렇지만, 필요한 것은 오라클에서 입니다. -_-;;

    >

    > 뉴스그룹에서 오라클로 자르는 방식을 기술해 놓았던데, rownum을 이용한 방법이더군요.

    > select * from

    > (select * from 테이블

    > where rownum < 21 )

    > where prikey > 10 ; 여기서 prikey는 프라이머키로, 실제 필드키

    >

    > 위의 SQL문에서 예상되는 결과는 11 - 20 번째 레코드를 불러오는 것입니다만,

    > 만약 11-20번째에서 prikey중에 15,16번이 없다고 하면 8개의 레코드가 나타날 것입니다.

    > 이렇게 하는 것이 아니라, 그냥 레코드 10개씩 불러오는 방법은 없는지요?

    >

    > 오라클에서 rownum을 사용할때, 등호를 > 쪽으로 하면 안된다고 하더군요.

    > 언제나 fail될것이라고 하더군요.

    > 예로

    > select * from 테이블

    > where rownum > 10 or where rownum >= 10

    > 이렇게 하면 언제나 리턴되는것은 '레코드가 없습니다' 라고 나오더군요.

    > 고로 select * from 테이블

    > where rownum between 10 and 20

    > 위의 SQL문도 안되더군요. ㅠ.ㅠ

    >

    > 도움을 부탁드립니다.





    이런식으로 select를 한번 더하면 되요...

    select *

    from (select rownum cnt, no, no2 from copy_t)

    where cnt > 2

    and cnt < 5

    • 손용석
      2001.01.31 01:16
      DataBase1.Params.Values['DATABASE NAME'] := 'Z:DB_____.MDB' 이런식이죠!! 도움이 되었으면 좋겠...
    • 호야
      2001.01.31 18:35
      손용석 wrote: > > DataBase1.Params.Values['DATABASE NAME'] := 'Z:DB_____.MDB' > > 이런식이죠!!...
    • 성더기
      2001.01.31 22:01
      vender init어쩌구 하는 에러의 대부분은... Oracle에 path가 안걸려 있거나 BDE의 VENDER INIT에 있는 DL...
    • 초보자
      2001.02.01 08:52
      성더기 wrote: > vender init어쩌구 하는 에러의 대부분은... > Oracle에 path가 안걸려 있거나 BDE의 VE...
    • 아폴론
      2001.01.31 01:36
      안녕하세요 오라클을 PC와 연결 하셨다니 축하드립니다. 매우 어렵던데... 오라클과 텔과의 연결은..음 ...
    • 방기남
      2001.01.31 00:28
      같은 상황일 것 같지만 환경이 다를수도 있으니 정답이 아닐수도 있습니다. 저 같은 경우엔 SERVER...
    • 과객
    • 2001.01.31 00:03
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 손용석
      2001.01.31 02:06
      컴포넌트 하나 소개하겠습니다...!! 'Async'라고 RS-232C 통신을 할때 쓸만 하더군요..?! 저는 RS-23...
    • 손용석
      2001.01.31 02:20
      아래내용은 제가 가지고 있는 FAQ플그램내에 있는 내용입니다. 저도 같은 문제로... ㅜ.ㅜ; ////////...
    • 김범수
    • 2001.01.30 23:21
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 뿌요
      2001.01.31 18:37
      ..
    • 망치
      2001.01.30 23:53
      김범수 wrote: > 1.테이블 : 부서코드 부서명 : bu_name > 적정인원:bu_to >...
    • 공성환
      2001.01.30 23:47
      SELECT A.BU_NAME, SUM(B.inwonto), SUM(B.bu_num ), SUM(B.over ) FROM 부...
    • 김범수
      2001.01.31 00:06
      답변감사합니다. 출력필드에 부서명(a.bu_name), 적정인원(a.bu_to),부서인원(이부분은 count(*) group by...
    • 공성환
      2001.01.31 02:15
      작성하신 sql문을 적어주시는게 이해가 잘될것같네요... 머리가 나빠서리.... 김범수 wrote: > 답변감...
    • moon
    • 2001.01.30 22:59
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 투덜이
      2001.01.30 23:34
      폼의 Object Inspector에 보시면 Anchors라는 Property가 있습니다. 거기서 고정여부를 True, False로 적...
    • aha
    • 2001.01.30 22:58
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 액션가면
      2001.01.31 00:18
      안녕하세여~ 인터베이스라고 유달리 다른 DB는 아니구여 파라독스나 SQL-SERVER, Oracle등과 별 차이...
    • aha
      2001.01.31 02:09
      안녕하세요 아하입니다. 답변에 감사드립니다. by the way, 델코에 인터베이스 설치에 관한 메뉴얼이...
    • 최경훈
    • 2001.01.30 22:43
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 2001.01.31 02:08
      음.. 혹 도움이 될까해서 답변을 드립니다. DLL을 작성하실때 'DWORD' type을 사용하지 마시고 (Power Bu...
    • ^^
      2001.01.31 08:35
      희 wrote: > 음.. > 혹 도움이 될까해서 답변을 드립니다. > DLL을 작성하실때 'DWORD' type을 사용하지...
    • 컴사랑
    • 2001.01.30 21:35
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 델피언.......
      2001.01.30 23:07
      컴사랑 wrote: > ip가 없는 로컬 db(MSSQL DB)에 다른 컴퓨터를 연결하려고 합니다. > > 즉 하나의 프...
    • 강정한
    • 2001.01.30 21:03
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 망치
      2001.01.31 00:59
      강정한 wrote: > 제가 사용하는 환경은 오라클입니다. > 특정테이블이 있는데, 여기엔 프라이머키로 잡은...
    • 김석경
    • 2001.01.30 20:38
    • 3 COMMENTS
    • /
    • 0 LIKES
    • hobakpa
      2001.01.30 20:46
      김석경 wrote: > 델파이에서 스토어드 프로시져를 연결해서 ms-sql의 storedprocedure를 실행하는데 > 아...
    • 김석경
      2001.01.30 20:51
      hobakpa wrote: > 김석경 wrote: > > 델파이에서 스토어드 프로시져를 연결해서 ms-sql의 storedprocedur...
    • hobakpa
      2001.01.30 21:16
      > 파라미터 타입은 전부 input으로 주고 데이타 타입은 string으로 주었지요. > 근데 select, delete하는 ...