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 5422 게시물 읽기
No. 5422
회원 5개씩 쿼리하기
작성자
조중규(biosensor)
작성일
2009-10-26 11:22ⓒ
2009-10-26 11:23ⓜ
조회수
5,509

예를 들어 게시판형식 같은 테이블에서 아이디별로 row를 5개이하로 추려 표시하고 싶습니다. 간단할거 같은데 영 묘안이 안떠오르네요..

표시결과는 다음과 같습니다.

아이디 seq value
aaa 1 ㅎㅎㅎ
aaa 3 ㅋㅋㅋ
aaa 11 ㅎㅋㅎ
bbb 5
bbb 7
bbb 6
bbb 88
bbb
ccc
ccc
ccc
ccc
ddd
ddd
eee
eee
eee

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

 

DECLARE @SEQ INT
DECLARE @아이디 VARCHAR(100)
DECLARE @PRE_아이디 VARCHAR(100)
DECLARE @LANK INT

CREATE TABLE #TEMP_TT (SEQ INT, 아이디 VARCHAR(100), LANK INT) --임시 테이블을 만든다
DECLARE CUR_MSG CURSOR FOR

 SELECT SEQ, 아이디 FROM CTEST ORDER BY 아이디, SEQ --커서를 만든다.
 OPEN CUR_MSG
  FETCH NEXT FROM CUR_MSG INTO @SEQ , @아이디
  WHILE @@FETCH_STATUS = 0
   BEGIN
     IF @아이디 = @PRE_아이디
    BEGIN
    SET @LANK = @LANK + 1
    END
     ELSE
    BEGIN
    SET @LANK = 1
    END   
     INSERT INTO #TEMP_TT (SEQ, 아이디, LANK) VALUES (@SEQ , @아이디,@LANK )
     SET @PRE_아이디  = @아이디
     FETCH NEXT FROM CUR_MSG INTO @SEQ, @아이디
   END
  
SELECT * FROM #TEMP_TT WHERE LANK <6
CLOSE CUR_MSG
DEALLOCATE CUR_MSG

DROP TABLE #TEMP_TT


컬럼명과 테이블명만 바꾸면 되실겁니다.
임진표(운가라)님이 2009-10-29 11:22에 작성한 댓글입니다.
이 댓글은 2009-10-29 11:26에 마지막으로 수정되었습니다.

조금 늦은 댓글이긴 하지만, 다른 분들 위해서 올려보았습니다.


WITH List AS (

    SELECT ID,SEQ,VALUE, ROW_NUMBER()OVER(PARTITION BY ID ORDER BY SEQ ASC) Tick

    FROM table1

)

SELECT * FROM List WHERE Tick <=5


이렇게 사용하시면 되실 거  같습니다.

julia님이 2009-12-05 04:18에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
5426로그인통계요
통계자
2009-10-29
5700
5425varchar 형식의 컬럼값을 정렬하려면 어떻게 하나요? [1]
급급이
2009-10-29
5105
5423커서의 레코드수 [1]
조영모
2009-10-27
5368
5422회원 5개씩 쿼리하기 [2]
조중규
2009-10-26
5509
5421row_number 질문입니다~검색이 이상하네요~ [1]
우리누리
2009-10-25
5608
5420쿼리문좀 작성해주세요.. 고수님들... [1]
이호상
2009-10-22
5174
5419getDate로 지난달을 가져올수 있나요? [1]
래시
2009-10-19
6470
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다