티스토리 뷰

반응형

MS-SQL에서 데이터를 조회하다 보면 고정된 자릿수에 값을 카운트하는 경우가 종종 생깁니다 (예를들어 일련번호 값 증가) 

SELECT 하는 방법은 MS-SQL 함수인 REPLICATE 함수를 사용하는 것 입니다.

이 함수는 오라클의 LPAD 함수와 비슷한 기능을 합니다.


 REPLICATE 함수 문법

REPLICATE('반복할 문자열', 반복할 횟수') 

예)

 SELECT REPLICATE('0', 4)    => '0000'


이제 숫자형식의 고정된 자릿수를 '00001', '00002', '00003', '00004'... 처럼 DB의 특정값을 카운트하여

보여주거나 insert 해야할 경우가 생기면 아래처럼 쿼리를 작성하면 될 것이다.


 

 

샘플) SELECT REPLICATE('0', 반복할사이즈 - LEN(숫자형식컬럼)) + CAST(숫자형식컬럼 AS NVARCHAR) 


예제)

컬럼A => 증가할 대상의 컬럼 ( 문자열이라고 합시다 )

SELECT REPLICATE('0', 5 - LEN( ROW_NUMBER() OVER (PARTITION BY 컬럼A ORDER BY 컬럼A))) +

          CAST( (ROW_NUMBER() OVER(PARTITION BY 컬럼A ORDER BY 컬럼A )) AS NVARCHAR)

결과값 => 00001, 00002, 00003 ... 00010, 00011, 00012.. 이런식으로 자릿수는 고정되면서 숫자가 증가하는 것을 볼 수 있습니다.



반응형
댓글