오라클 8i 상위 n개만 출력 0 2 2,473

by kj2hw [2012.10.18 18:58:01]


초보입니다. 상위 n개만 출력하고 싶은데요 rownum가 순서대로 적용이 안됐을 경우 입니다.

rownum A     B
   22   1     1
   23   2     1
   24   3     1
   1     4     1
   2     5     1
   3     6     1
   5     7     1
   33   8     1
   34   9     1
   35 10    1
   .     . .
   .     . .
   .     . .

이런식으로 나열 되어있을 경우 상위 n개만 출력하려면 rownum를 사용하지 않고
출력하는 방법이 있나요? 오라클8i입니다.
초보라 아는게 없습니다ㅠㅠ
by 마농 [2012.10.18 19:23:33]
-- 1. Row_Number
SELECT *
  FROM (SELECT ROW_NUMBER() OVER(ORDER BY a) rn
             , a, b
          FROM t
        )
 WHERE rn <= 10
;
-- 2. Order By & Rownum
SELECT ROWNUM rn
     , a, b
  FROM (SELECT a, b
          FROM t
         ORDER BY a
        )
 WHERE ROWNUM <= 10
;

by kj2hw [2012.10.19 09:37:39]

마농님 감사합니다. 알려주신대로 적용하니 잘 실행 되네요. 감사합니다!!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입