SQL Server개발시 0 채우기, 또는 특정문자 채우기를 통한 문서번호 생성은 상당히 자주 사용하게 됩니다. 문서번호를 생성할때 DOC20181201-00001와 같이 문서코드+년월일+n자리형식의 일련번호 조합을 많이 사용하기 때문이죠. 예들 들어 5자리의 일련번호를 만들때, 남는 자릿수는 0으로 채우고 싶다면 어떻게 해야할까요? 이때 사용하는 함수가 REPLICATE입니다.
목표) 00001, 00012, 00123 와 같은 n자릿수 일련번호 생성
사용법) REPLICATE(채울문자, 반복횟수)
채울문자 : 0
총자릿수 : 5
반복횟수 : 총 자릿수 - LEN(넣을 문자)
1. 왼쪽에 문자 채우기
먼저 왼쪽에 0을 채우는 방법입니다.
SELECT REPLICATE('0', 5 - LEN('1')) + '1' SELECT REPLICATE('0', 5 - LEN('12')) + '12' SELECT REPLICATE('0', 5 - LEN('123')) + '123'
2. 오른쪽에 문자 채우기
동일하게 응용해서 오른쪽에 0을 채울수도 있습니다.
SELECT '1' + REPLICATE('0', 5 - LEN('1')) SELECT '12' + REPLICATE('0', 5 - LEN('12')) SELECT '123' + REPLICATE('0', 5 - LEN('123'))
어떠신가요? 쉬우신가요? 전 어렵더군요 @.@
다음과 같이 RIGHT, LEFT함수를 이용하는 방법도 있습니다. 전 개인적으로 이게 더 쉬웠습니다.
SELECT RIGHT(('00000' + '1'), 5) SELECT RIGHT(('00000' + '12'), 5) SELECT RIGHT(('00000' + '123'), 5) SELECT LEFT(('1'+'00000'), 5) SELECT LEFT(('12'+'00000'), 5) SELECT LEFT(('123'+'00000'), 5)
REPLICATE함수를 왜 만들었을까 하는 의문은 저만 갖는건가요 ^^?
프로젝트의 성공을 기원합니다.
'MS-SQL' 카테고리의 다른 글
MSSQL UPDATE, UPDATE FROM (0) | 2018.10.24 |
---|---|
mssql 변경 내용을 저장할 수 없습니다. 변경 내용을 적용하려면 다음 테이블을 삭제하고... 오류해결 (1) | 2018.10.23 |
MSSQL 서버의 디폴트 datetime 포맷 변경 (2) | 2018.10.20 |
MSSQL 여러행을 한줄로 나타내기 (1) | 2018.10.17 |
MSSQL 코딩 스타일 가이드 (0) | 2018.09.28 |