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 3943 게시물 읽기
No. 3943
게시판에서 이전글,다음글 사용시 정렬이 다를경우..질문
작성자
별다방
작성일
2007-12-27 13:53ⓒ
2007-12-27 14:09ⓜ
조회수
4,570

첨으로 질문란에 올려보내요..^^..미리 감사드리며 질문하겠습니다.

게시판이용시 보기페이지에서 다음글, 이전글을 많이 사용하는데..

정렬기준이 되는 키가 존재할경우는 top 1 또는 max, min 등을 이용하여 가져오는것는 많이 알려져 있고

어렵지 않게 구현이 되는데

조회수로 정렬할경우 (내림차순)
PK    viweCount
1       5  
5       2
2       1
3       1
---------
7       1
9       1
4       0
6       0 

이런경우 에 PK 3번글을 보고 있다면 이전글 다음글 구현은 어떤식으로 해야될지 궁금합니다.
참고로 올림차순했을경우도 생각해야되구요..ㅡㅡ;

다시 말씀드리면 정렬기준이 되는 키값은 viewcount구요..
viewcount에서 같은값이 여러개일겨우 문제입니다.
이럴경우 이전글 다음글을 뽑아올려면 어떤식으로 해야될지 고수님들의 힌트부탁드립니다.
그럼..ㄳ

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

데이터를 조금만 더 구체화 해주실 수 있나요? 

.님이 2007-12-27 13:56에 작성한 댓글입니다. Edit

해 보진 않았습니다만,

최초 정렬시(리스트 불러올 때)에 뷰카운트

ORDER BY VIECOUNT DESC, PK ASC 로 하시고,

해당 테이블 명이 TBL_BBS 라 하면,


DECLARE @PK  INT,

        @VC  INT


SET @PK = 현재글번호

SET @VC = 현재뷰카운트



-- 이전글

SELECT TOP 1 *

  FROM TBL_BBS

 WHERE VIEWCOUNT >= @VK

   AND CASE WHEN EXISTS( SELECT 1 FROM TBL_BBS WHERE VIEWCOUNT = @VC AND PK <> @PK ) AND PK < @PK THEN 1

            WHEN NOT EXISTS( SELECT 1 FROM TBL_BBS WHERE VIEWCOUNT = @VC AND PK <> @PK ) THEN 1

            ELSE 0 END = 1


-- 다음글

SELECT TOP 1 *

  FROM TBL_BBS

 WHERE VIEWCOUNT <= @VK

   AND CASE WHEN EXISTS( SELECT 1 FROM TBL_BBS WHERE VIEWCOUNT = @VC AND PK <> @PK ) AND PK > @PK THEN 1

            WHEN NOT EXISTS( SELECT 1 FROM TBL_BBS WHERE VIEWCOUNT = @VC AND PK <> @PK ) THEN 1

            ELSE 0 END = 1

음님이 2007-12-27 14:27에 작성한 댓글입니다. Edit

답변감사합니다.^^
이리저리 고민하다가보니 의로로 간단하던구요..ㅡㅡ;;
역시 좀더 생각을 해야된다는...
글올릴려고 보니 벌써 답글까지 달아주시고..ㅜㅜ 
답변감사합니다.^^

--이전글
if (select count(*) from table_name where viewcoutn=[뷰값]) > 1
          select top 1 pk from table_name where
                 viwecount >= [뷰값] and pk < [pk값]
          order by pkid desc
else
           select top 1 pk from table_name where
                 viwecount > [뷰값]
           order by viewcount asc,pkid

별다방님이 2007-12-27 15:12에 작성한 댓글입니다.
이 댓글은 2007-12-27 15:19에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
3946oracle db를 ms-sql로 가져오는 방법
김동민
2007-12-27
3297
3945외부에서 db서버 붙기
박판규
2007-12-27
3070
3944addbatch에 대해 궁금합니다.
김진길
2007-12-27
3577
3943게시판에서 이전글,다음글 사용시 정렬이 다를경우..질문 [3]
별다방
2007-12-27
4570
3938mssql 데이터 존재여부 확인하는 방법좀. [1]
김진길
2007-12-26
5252
3937인스턴스 연결 문제
초보자
2007-12-26
4807
3936문자열 'kim's' 인식하기 ㅜㅜ [2]
몰라몰라
2007-12-26
3477
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다