[MSSQL] ROW_NUMBER()를 사용해보자!

#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라던지 여러가지 더 알아야할게 있는데, 그건 천천히 필요할 때 찾아보시죠!

그럼, 이만! 슬기로운 코딩생활 하세요!

Leave a Comment