현재 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를 매길수 있는 방법이 있나요? |