[MSSQL] REPLICATE 함수 사용법 (문자열 반복)

SQL Server에서 특정 문자열을 반복해서 출력하고 싶을 때, 가장 유용하게 사용할 수 있는 방법이 REPLICATE 함수이다. 공백을 여러 번 추가하거나, 특정 문자를 반복해서 포맷을 맞춰야 할 때, 직접 문자열을 여러 번 붙이는 방식은 비효율적이고 가독성도 떨어진다. 이럴 때 REPLICATE 함수를 사용하면 깔끔하게 반복 문자열을 만들 수 있으며, 공백 추가, 패턴 생성, 자릿수 정렬 등 다양한 실무 상황에 활용할 수 있다.

목차

REPLICATE 함수 기본 사용법

SELECT REPLICATE('A', 2)  AS result1
     , REPLICATE('A', 5)  AS result2
     , REPLICATE('A', 10) AS result3

 

 

REPLICATE('문자열', '반복 횟수')

REPLICATE 함수는 특정 문자열을 원하는 횟수만큼 반복하여 하나의 결과 문자열로 만들 때 사용한다.

 컬럼명  결과 문자열  설명
 result1  AA  'A' 문자를 2번 반복
 result2  AAAAA  'A' 문자를 5번 반복
 result3  AAAAAAAAAA  'A' 문자를 10번 반복

 

SELECT REPLICATE('ABC', 2) AS result1
     , REPLICATE('ABC', 5) AS result2

 

 

위의 예제는 'ABC'라는 문자열을 각각 2번, 5번 반복하여 어떤 결과가 나오는지 보여준다.

 

REPLICATE 함수 활용 방법

자릿수 맞춰서 '0' 채우기

SELECT RIGHT(REPLICATE('0', 5) + CAST(4   AS VARCHAR), 5) AS result1
     , RIGHT(REPLICATE('0', 5) + CAST(44  AS VARCHAR), 5) AS result2
     , RIGHT(REPLICATE('0', 5) + CAST(444 AS VARCHAR), 5) AS result3

 

 

위의 예제는 숫자의 앞을 '0'으로 채워 자릿수 맞추어 5자리 문자열을 만들 때 사용한다.

 컬럼명  결과  설명
 result1  00004  1자리 숫자 앞에 0을 4개 채움
 result2  00044  2자리 숫자 앞에 0을 3개 채움
 result3  00444  3자리 숫자 앞에 0을 2개 채움

 

공백 채우기

SELECT 'SQL' + REPLICATE(' ', 1) + 'Server' AS [공백1]
     , 'SQL' + REPLICATE(' ', 2) + 'Server' AS [공백2]
     , 'SQL' + REPLICATE(' ', 3) + 'Server' AS [공백3]
     , 'SQL' + REPLICATE(' ', 4) + 'Server' AS [공백4]
     , 'SQL' + REPLICATE(' ', 5) + 'Server' AS [공백5]

 

 

위의 예제는 지정된 횟수만 큰 공백을 생성하여 채우는 방법이다.

 

조직도 들여 쓰기

WITH dept AS (
    SELECT 0 AS lvl, '부서' AS dname
    UNION ALL
    SELECT 1, '개발팀'
    UNION ALL
    SELECT 2, '백엔드'
    UNION ALL
    SELECT 2, '프론트엔드'
    UNION ALL
    SELECT 1, '영업팀'
)

SELECT REPLICATE('  ', lvl) + '- ' + dname AS dept_tree
  FROM dept

 

 

조직도나 메뉴 구성처럼 계층적인 데이터를 들여 쓰기나 기호를 반복해서 사용하여 시각적으로 표현하고 싶을 때 사용할 수 있다.

 

 

댓글

Designed by JB FACTORY