row_number() over (order by 컬럼 desc)
이런식으로 하는데
아무리해도 내림차순으로 순번이 매겨지지 않네요.
그러니깐 순차가 1,2,3.... 이렇게 뿐이 안되더라구요.
제가 원하는건 10,9,8,,,,,이런식으로 역순이 돼야 하거든요.
왜 그럴까요?
혹시 pk에서 인덱스 타서 그러는걸까요?
by 마농
[2009.07.14 11:27:16]
row_number은 정렬 순서대로 번호를 붙이는 역할을 합니다.
위 문장대로라면 컬럼을 역순으로 정렬해서 1부터 10까지 번호를 매기겠죠.
님께서 원하시는 결과가 컬럼의 역순인지 매겨진 번호의 역순인지 모호하네요.
매겨진 순번을 역순 정렬 하시려면 다시 정렬하시면 됩니다.
SELECT ROW_NUMBER() OVER(ORDER BY 컬럼 DESC) AS rn
FROM 테이블
ORDER BY rn DESC
;
by 마농
[2009.07.14 11:36:35]
님께서 원하시는 자료는 이런 것일수도 있겠네요?
SELECT ROW_NUMBER() OVER(ORDER BY 컬럼) AS rn
FROM 테이블
ORDER BY rn DESC
;
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.