반응형
숫자 앞을 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] 문자열에서 특정 문자 개수 조회
반응형
'프로그래밍 > MSSQL' 카테고리의 다른 글
[MSSQL] ROUND, CEILING, FLOOR (소수점 반올림, 올림, 버림) (0) | 2019.09.29 |
---|---|
[MSSQL] 재귀 쿼리, 트리 구조 (CTE 재귀) (0) | 2019.09.29 |
[MSSQL] GROUP BY 없이 HAVING이 단독으로 오는 경우 (0) | 2019.07.12 |
[MSSQL] 문자열에서 특정 문자 개수 조회 (0) | 2019.07.12 |
[MSSQL] 동적 PIVOT, 동적 UNPIVOT (dynamic pivot/unpivot) (0) | 2019.06.14 |