개발자이야기/MS-SQL

MS‑SQL 기술 팁: ROW_NUMBER 함수로 순번 매기기

퐈니스타일 2025. 8. 27. 15:31

결과 집합에 행 번호 추가하기

ROW_NUMBER 함수는 쿼리 결과에 일련 번호를 붙여 주는 윈도 함수입니다. ROW_NUMBER() OVER (PARTITION BY … ORDER BY …) 구문으로 사용하며, 지정한 파티션 안에서 정렬 기준에 따라 1부터 순차적으로 번호를 붙입니다 PARTITION BY 절을 생략하면 전체 결과를 하나의 파티션으로 보고 번호를 매깁니다.

-- 시스템 데이터베이스 목록에 번호 붙이기
SELECT ROW_NUMBER() OVER (ORDER BY name ASC) AS Row#, name, create_date
FROM sys.databases;
 

위 쿼리는 sys.databases의 name 순서대로 행 번호를 1부터 부여합니다. 특정 컬럼 값이 변경될 때마다 번호를 다시 시작하려면 PARTITION BY 절을 사용합니다. 예를 들어 각 복구 모델별로 데이터베이스에 번호를 매기려면 다음과 같이 작성합니다:

 
SELECT recovery_model_desc,
       ROW_NUMBER() OVER (PARTITION BY recovery_model_desc ORDER BY name) AS RowWithinModel,
       name
FROM sys.databases;

 

recovery_model_desc 값이 바뀔 때마다 RowWithinModel이 1부터 다시 시작합니다

728x90
반응형