Background Image

FORUM

?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
게시판 페이징 처리를 할 때 단일 테이블들을 가져올 때는 rownum으로 해결할 수 있는데,
테이블들은 조인 후에 또 정렬을 하고 나니 rownum 조차 뒤죽박죽이 되어 버렸습니다.

게시판 페이지당 10개씩만 보여줄 것이기 때문에 전체 조회를 할 필요가 없이 날짜 순서로 조인한
결과에서 10개의 레코드만 가져왔으면 합니다.
(쿼리 단에서 해결했으며 합니다.)

그런데 조인하고 정렬하고 나니 날짜 순으로 가져오고 싶어도 10개를 가져올 기준점이 사라져 버렸습니다.
rownum은 정렬을 하고 나면 순서가 정렬된 기준에 따라 바뀌어버리는데
정렬을 해도 바뀌지 않는 레코드 순서를 알 수 있는 방법이 있을까요? 일종의 레코드 시퀀스 같은?

  • ?
    cubebridge 2009.10.01 04:29
    쿼리단에서 해결하고자 한다는 말씀은 reverse index 사용은 배제하는 것으로 알고 설명을 드리겠습니다.
    우선 cubrid에서의 rownum은 scan 후 바로 생기므로 이후에 정렬작업에 의해 원하는 번호 값이 나오지 않을 수 있습니다. order by 이후에 값에 대한 일련번호를 가져오는 방법으로 cubrid에서는 orderby_num()이라는 함수를 제공합니다. orderby_num()은 select절과 order by 뒤에 사용이 가능하며 사용 방법은 ... order by A desc for orderby_num() between 1 and 10; 과 같이 사용합니다. 아래의 링크 문서에 여러가지의 CUBRID pagination 방법이 정리되어 있습니다. 
    http://dev.naver.com/projects/cubrid/4627
  • ?
    남재우 2009.10.02 18:44
    질의결과 순서가 바뀌는 것은 조인 순서가 엔진에 의해 평가되어지기 때문입니다. 따라서 조인순서를 지정하셔야 합니다. select /*+ ORDERED */ ... 와 같이 사용하시면 됩니다. 아울러 using index 를 이용하신 것 같은데 이때에는 (+) 를 주시고 조인되어지는 테이블에 대하여도 인덱스를 명시하셔야 합니다. 그렇지 않으면 인덱스가 사용되지 않아 역시 잘못된 결과가 나올 수 있습니다.
  • ?
    조상필 2009.10.06 21:07
    두분 답변 감사합니다. 도움이 되었습니다.
    저의 경우에는 서브쿼리를 사용해서 해결했습니다. select idx, rownum from (select * from abc order by ~)
    이렇게 해주니 데이터가 이미 정렬된 상태로 rownum이 부여되어
    between 구문으로 페이징 처리 끝냈습니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 122
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4476
1102 Windows10에서 Accessor is invalid 에러가 발생되는데, 확인좀 부탁드립니다. 4 file sec_smd 2018.12.07 425
1101 Windows 에서 사일런트 설치가 가능한가요... 2 거만쟁이 2009.08.12 23359
1100 Windows 버전 이중화 문의 드립니다. 2 배나와사마 2013.03.05 8455
1099 Windows Server 설치된 큐브리드 10.1.1.7691 의 loadjava.exe 실행 시 액세스가 거부되었습니다. 라는 메시지가 나오는 현상 3 노멤버 2018.06.25 323
1098 Windows Server 버전별 설치가능여부 확인 문의 2 언제나즐거운나 2015.05.26 7255
1097 Windows Server 2008 64Bit에서 Cubrid 2008 R2.2 사용 가능여부 5 종이 2010.12.16 8868
1096 Windows 7 64bit에서 ODBC Driver가 등록되지 않습니다. 2 일수니 2011.03.29 24300
1095 Windows 7 64bit 에서 cubrid 설치 되나요? 2 예수 2009.06.17 14733
1094 Windows 2008 서버 backupdb 오류 문의 1 김소영 2010.11.25 7853
1093 Windows 10 에서 CUBRIDManager-10.1.0.0005-windows-x64와 CUBRID-Windows-x64-10.1-latest 설치후 매니저 실행하고 연결이름을 test 입력시 연결오류발생 2 file simon 2019.01.03 356
1092 Windows 10 php 5.6 Call to undefined function cubrid_connect() 에러 문의 8 file devlsy 2022.04.21 123
1091 Window Crubrid 설치 후 uninstall시에 트레이 아이콘을 명령어로 종료시킬 수 있는 방법이 있나요? 1 혀니짱 2011.03.22 11534
1090 WinNGS 통해서 CM 관리모드 사용할때 8001포트 사용하고 있습니다. 1 Philip Park 2020.12.24 1608
1089 Win7에서 Query Browser 실행 안됩니다. 도움 요청 드립니다. 1 jemcarry 2013.08.28 8017
1088 Warning: Error: CAS, -1003, Cannot receive data from client 에러 발생 1 gPdnjs 2012.03.23 9259
1087 Warning: Error: CAS, -10012, Invalid cursor position in ~ 6 완초 2015.04.08 6365
1086 WHERE절에 REGEXP_REPLACE를 넣고 실행하면 다운됩니다. 3 거지같은 2023.01.02 323
1085 VisualSQL과 같은 도구를 만들고 있습니다. 1 서명호 2009.04.06 12525
1084 VisualSQL과 같은 도구를 만들고 있습니다. 1 서명호 2009.04.17 13070
1083 Visual Studio 2010과 Cubrid ole db provider연동 문제 7 안드레세상 2012.07.08 19806
Board Pagination Prev 1 ... 141 142 143 144 145 146 147 148 149 150 ... 201 Next
/ 201

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales