본문 바로가기

프로그래밍/MSSQL

[MSSQL] REPLICATE (오라클 LPAD) : 000부터 1씩 증가하는 3자리 숫자 001, 002, 003...

반응형

 

 

숫자 앞을 0으로 채워서 3자리의 숫자를 표현해보자

3자리의 숫자 ('001, 0002, 003..')를 표현하기 위해 활용할 함수 REPLICATE에 대해 알아보자

 

REPLICATE 함수는 문자를 지정된 횟수만큼 반복하여 표현해주는 함수다.

REPLICATE('0', 2)는 '0'을 2번 표현 -> '00'

REPLCATE('A', 3)는 'A'를 3번 표현 -> 'AAA'

 

 

 

자 그럼 2라는 숫자 앞에 0을 2개 채워서 '002'를 표현해보자

 

DECLARE @cnt INT = 2
SELECT REPLICATE('0', 3-LEN(@cnt)) + CAST(@cnt AS CHAR)
-- 결과 : 002

 

 

 

본격적으로 001부터 999까지 1씩 증가하는 3자리 숫자를 만들어보자.

반복문(WHILE)을 이용하도록 한다.

 

DECLARE @cnt INT = 1

WHILE (@cnt < 999)
BEGIN
  SELECT REPLICATE('0', 3-LEN(@cnt)) + CAST(@cnt AS CHAR)
  SET @cnt = @cnt + 1
END
-- 결과 : 001, 002, 003 ... 999

 

 

 

만약 3자리가 아닌 4자리의 수 (0001, 0002, 0003...)을 표현하려면

REPLICATE('0', 4-LEN(@cnt))로 변경해주면 된다.

 

 

 

[MSSQL] 문자열에서 특정 문자 개수 조회

 

 

반응형