IT & programming/MSSQL

[MS-SQL] row_number 그리고 Partition

찬파 2015. 12. 30. 11:36
반응형

가끔 데이터 이관(마이그레이션) 작업을 하다보면 키값을 다시 매겨야 하는 순간이 온다.

 

그때 사용하는 방법 중 하나.

 

번호를 다시 매기는 방법인데, row_number()를 사용하면 간단하게 순차적으로 번호를 뽑아올 수 있다.

 

SELECT KEY, ROW_NUMBER() OVER(PARTITION BY KEY ORDER BY KEY) FROM TABLE

-- 또 다른 방법은
SELECT KEY, 
	RIGHT('000'+CAST(ROW_NUMBER() OVER(PARTITION BY [KEY] ORDER BY [KEY])) AS VARCHAR(3)),3)
FROM TABLE

 

이런 식으로 사용해주자.

 

PARTITION 부분은 KEY를 기준으로 ROW_NUMBER를 채번하는 것으로

같은 KEY를 묶어 채번이 된다.

 

PARTITION 부분을 제외하면 묶이는 것 없이 ROW_NUMBER를 지정하게 된다.

 

반응형