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
운영게시판
최근게시물
Oracle Q&A 39991 게시물 읽기
No. 39991
Row_number 의 order by 문의
작성자
정용석(libranet)
작성일
2013-01-29 15:49
조회수
6,038

현재 DB2 를 Oracle 로 변환중입니다.

DB2 에서는 아래 구문이 정상적으로 작동을 하나 Oracle 에서는 Order by가 없어서 구문에러가 발생합니다.

 - row_number() over()

Order by 컬럼 을 over 안에 넣으면되지만.... 프로세스성격을 알지 못해서 어떤 컬럼을 넣어야 할지 모릅니다....

그래서 아래와 같이 테스트를 해봤는데요,

 

           SELECT 3 A, 'Y' B FROM DUAL UNION ALL

           SELECT 4 A, 'X' B FROM DUAL UNION ALL

           SELECT 2 A, 'A' B FROM DUAL )

SELECT ROW_NUMBER() OVER( ORDER BY 1 ) RN

       ,A.*

컬럼 A, B 둘다 정렬되지 않고 rownumber 를 매기는 것을 볼수 있었습니다.

order by 1 하면 첫번째 컬럼으로 알고 있었는데, 이겨우는 그렇지 않아서 문의 드립니다. 

over 안의 order by 다음 숫자를 입력하는 의미와

DB2 처럼 정렬없이 처음부터 rownumber를 매길수 있는 방법이 있나요? 

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

최종 결과에 대한 Order By 1 이라면 첫번째 컬럼으로 정렬이겠지만
분석함수구문 안에서의 Order By 1 은 그냥 상수값 1을 정렬하란 의미입니다.
꼭 1이 아니어도 되겠지요. Null 이나 2, 'A' 등도 가능하죠.
그냥 순서 없이 번호 매기려면 단순하게 ROWNUM 하시면 됩니다.

마농(manon94)님이 2013-01-29 19:12에 작성한 댓글입니다.

 역시 마농님 감사합니다 ^^

상수값 1을 정렬하라는 의미였군요, 새로운 지식 얻어가네요.

정용석(libranet)님이 2013-01-30 15:27에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
39994LIKE '%%' 를 쓸때 %%안에쿼리를 쓰려면요? [1]
질문
2013-02-04
5841
39993여러칼럼에 중복된 것들만 퀴리? [4]
쫑군
2013-01-30
6250
39992마지막 문자를 판단하여 치환하는 쿼리 [1]
rapid
2013-01-29
5235
39991Row_number 의 order by 문의 [2]
정용석
2013-01-29
6038
39990jquery 테이블 리스트에 체크박스 선택 된 행 값 가져오기 [2]
바램
2013-01-28
24987
39989안녕하세요. 혹시 10.2.0.4 패치셋 구할곳이 있는지요
김진표
2013-01-28
4941
39988오라클 소수점 처리
소수점
2013-01-28
6493
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다