쿼리를 이용하여 데이터를 표시하는 경우 자리수를 맞춰서 표시해야 하거나 값을 넣을 때에 자리수를 맞춰서 넣고 싶은 경우 앞에 0을 채워서 표시하거나 저장하거나 합니다.
SQLServer에는 자리수를 채워주는 LPAD와 RPAD가 없기 때문에 직접 만들어야 합니다.
SQLServer에서 앞에 0을 채우는 방법으로 가장 많이 사용하는 방법은 RIGHT 함수를 이용하는 것이 아닌가 합니다.
SQLServer 12 이후 부터는 FORMAT 사용해서도 0을 채울수 있습니다.
RIGHT를 사용해서 0을 채우는 방법과 FORMAT 사용하는 방법을 예제로 보겠습니다.
RIGHT 사용
RIGHT 0 채우기 예제
SELECT RIGHT('00000' + CAST(12 AS NVARCHAR), 5);
결과
00012
12라는 숫자에 0을 채워서 출력했습니다.
예제에서는 총 5자리 중에 모자란 자리수만큼 0을 채우도록 하고 있습니다.
주의 점으로는 입력값이 숫자 타입이기 때문에 NVARCHAR 타입으로 형변환을 해줘야 합니다.
형변환을 하지 않으면 값 앞에 0이 채워지지 않습니다.
FORMAT 사용
SQLServer 12 이후 부터 사용가능한 FORMAT을 사용하여 0을 채우는 예제를 보겠습니다.
RIGHT 0 채우기 예제
SELECT FORMAT(12, 'D5');
SELECT FORMAT(12, '00000');
결과
00012
00012
12라는 숫자 앞에 0이 채워졌습니다.
첫 번째 줄에 작성한 방법과 두 번째 줄에 작성한 방법 모두 숫자 앞에 0을 채워줍니다.
첫 번째 줄 작성한 내용은 D뒤에 숫자가 자리수를 의미합니다.
5자리 중에 모자란 자리수만큼 0을 채우도록 지정한 것입니다.
두 번째 작성한 방법은 표시하고 싶은 자리수만큼 0을 입력합니다.
입력한 자리수 중 모자란 자리수만큼 0을 채워 출력합니다.
FORMAT을 사용하는 경우에는 숫자 타입의 값만 입력하도록 해야 합니다.
정리
MSSQL에서 앞에 0을 채우는 방법으로 RIGHT와 FORMAT을 사용한 예제를 봤습니다.
RIGHT와 FORMAT은 같은 결과를 얻을 수 있지만 값을 설정할 때에는 차이가 있기 때문에 주의해서 사용해야 합니다.
댓글