MSSQL에서 숫자를 0으로 채우는 방법 (FORMAT 0 채우기)

MSSQL을 사용하다 보면 숫자 값을 특정 자리수로 맞추기 위해 앞에 '0'을 채워야 하는 경우가 많습니다. 예를 들어, 주문번호나 고객번호를 5자리로 통일하고 싶다면, 한 자리 숫자는 '00001'과 같은 형식으로 변환해야 합니다. 이번에는 MSSQL에서 숫자를 0으로 채우는 다양한 방법을 소개하고, 실전에서 유용하게 활용할 수 있도록 예제와 함께 설명하겠습니다.


목차

  1. FORMAT() 함수 활용 (SQL Server 2012 이상)

  2. RIGHT()REPLICATE() 함수 활용 (모든 버전에서 가능)

  3. STR() 함수 활용 (숫자 -> 문자 변환)

  4. 실전 적용 예제

    • 고객번호 자동 생성 시 활용

    • 주문번호 생성

    • 제품 코드 일괄 변경

  5. 개인적인 견해


1. FORMAT() 함수 활용 (SQL Server 2012 이상)

MSSQL 2012부터 FORMAT() 함수를 활용하면 간단하게 숫자를 0으로 채울 수 있습니다.

SELECT FORMAT(7, '00000') AS FormattedNumber;

결과:

00007

이 방법은 간결하고 가독성이 뛰어나지만, 성능이 상대적으로 낮을 수 있으므로 대량 데이터 처리에는 주의해야 합니다.


2. RIGHT()REPLICATE() 함수 활용 (모든 버전에서 가능)

REPLICATE() 함수는 특정 문자열을 반복하는 기능을 제공하며, RIGHT() 함수를 함께 사용하면 원하는 길이만큼 0을 채울 수 있습니다.

SELECT RIGHT(REPLICATE('0', 5) + CAST(7 AS VARCHAR), 5) AS FormattedNumber;

결과:

00007

이 방법은 MSSQL의 모든 버전에서 사용할 수 있으며, FORMAT() 함수보다 성능이 뛰어난 장점이 있습니다.


3. STR() 함수 활용 (숫자 -> 문자 변환)

STR() 함수를 사용하면 숫자를 특정 길이의 문자열로 변환할 수 있습니다. 하지만 기본적으로 공백이 채워지므로, 이를 REPLACE()로 처리할 필요가 있습니다.

SELECT REPLACE(STR(7, 5), ' ', '0') AS FormattedNumber;

결과:

00007

이 방법도 MSSQL의 모든 버전에서 사용할 수 있으며, 간단한 변환 작업에 적합합니다.


4. 실전 적용 예제

4.1. 고객번호 자동 생성 시 활용

SELECT 'CUST-' + RIGHT(REPLICATE('0', 6) + CAST(CustomerID AS VARCHAR), 6)
AS CustomerCode
FROM Customers;

4.2. 주문번호 생성

SELECT 'ORD-' + FORMAT(OrderID, '00000') AS OrderNumber FROM Orders;

4.3. 제품 코드 일괄 변경

UPDATE Products
SET ProductCode = RIGHT(REPLICATE('0', 8) + CAST(ProductID AS VARCHAR), 8);

MSSQL에서 숫자를 0으로 채우는 방법은 여러 가지가 있지만, 사용 목적과 성능을 고려하여 적절한 방법을 선택하는 것이 중요합니다. FORMAT() 함수는 직관적이지만 대량 데이터 처리 시 성능이 떨어질 수 있으므로, RIGHT() + REPLICATE() 조합이 실전에서는 더 적합할 수 있습니다. 또한, 데이터 정렬이나 인덱싱에 영향을 줄 수 있으므로, 0을 채운 값이 실제 숫자로 사용될 필요가 없는 경우에만 적용하는 것이 바람직합니다.

처음최근

댓글 쓰기