
#index #순서 #넘버지정 #row숫자 #row순번 #주기
포스팅 목차 바로가기
1. 검색 결과에 순번을 붙히고 싶다
MSSQL로 쿼리를 짜보다 보면 각각에 순서 혹은 숫자를 지정해주고 싶은 경우가 있지요.
select
top 10
, FRST_REGISTER_ID
, FRST_REGIST_PNTTM
from
LETTNBBS
order by
FRST_REGIST_PNTTM desc
이렇게 써서 조회를 한다면 딱 아래처럼 결과가 나오게 됩니다.

하지만, 우리가 원하는 것은 바로

이것인데 말이지요.
엑셀에서 그냥 더블클릭하면 되는걸 쿼리로 짜려면 어떻게 해야할까요? 자 row_number() 라는 것을 쓰면 아주 쉽게 가능합니다.
한번 해볼까요?
2. row_number()
mssql에서는 다양한 내장함수가 있는데, row_number()는 그 중 하나라고 보시면 됩니다.
select
top 10
ROW_NUMBER() over (order by FRST_REGIST_PNTTM desc) as 'index'
, FRST_REGISTER_ID
, FRST_REGIST_PNTTM
from
LETTNBBS
order by
FRST_REGIST_PNTTM desc
이렇게 써서 조회를 해본다면?

짜자잔! 엄청 쉽게 인덱싱이 되었지요? 순번이 지정되었습니다.
3. 간단 사용법
자, 복잡하게 말고 아주 간단하게 설명을 해보겠습니다.
ROW_NUMBER() OVER (ORDER BY 컬럼명) AS 표기명
이게 기본 골자입니다. 여기서 수정해서 사용할 부분은 위에 컬럼명.

진짜 간단하게 설명하자면, 현재 쿼리의 order by를 그대로 가져와서 넣어주시면 됩니다.
어때요? 간단하죠? 여기서 좀 더 나가서 OFF SET이라던지 FETCH NEXT라던지 여러가지 더 알아야할게 있는데, 그건 천천히 필요할 때 찾아보시죠!
그럼, 이만! 슬기로운 코딩생활 하세요!