SQL 문자열 패딩·반복: LPAD, RPAD, REPEAT/REPLICATE

2025. 11. 10. 09:22·SQLD함수당
반응형
이 글의 목차
  1. LPAD
  2. RPAD
  3. REPEAT / REPLICATE

이번 글은 문자열을 고정 길이로 맞추거나 패턴을 반복할 때 쓰는 LPAD, RPAD, REPEAT/REPLICATE를 정리합니다.

좌측 패딩은 LPAD, 우측 패딩은 RPAD, 반복 생성은 REPEAT/REPLICATE.


LPAD — 왼쪽으로 채워 길이 맞추기

어떤 함수인가

문자열의 왼쪽을 지정한 패딩 문자로 채워 목표 길이에 맞춥니다. 목표 길이가 원본보다 짧으면 왼쪽을 잘라 길이를 맞춥니다.

»
지원 DB: PostgreSQL, MySQL, Oracle. SQL Server는 직접 함수가 없으므로 RIGHT(REPLICATE('0', n) + str, n)처럼 조합합니다.

함수 원형

-- PostgreSQL / MySQL / Oracle
LPAD(str, len [, padstr])

입력과 출력

입력 (Parameters)

str: text

len: int — 목표 길이(문자 기준)

padstr: text — 채울 문자(기본 공백)

출력 (Returns)

padded: text — 길이 len

예시와 결과

1) 주문번호를 8자리로 0-패딩
-- PostgreSQL/MySQL/Oracle
SELECT LPAD('12345', 8, '0') AS order_no;
"00012345"
2) SQL Server에서 에뮬레이션
-- SQL Server
SELECT RIGHT(REPLICATE('0', 8) + '12345', 8) AS order_no;
"00012345"

📖 LPAD — PostgreSQL 📖 LPAD — MySQL 📖 LPAD — Oracle

RPAD — 오른쪽으로 채워 길이 맞추기

어떤 함수인가

문자열의 오른쪽을 패딩 문자로 채워 목표 길이에 맞춥니다. 목표 길이가 더 작으면 오른쪽을 잘라 길이를 맞춥니다.

»
고정 폭 레이아웃(예: 레거시 파일 포맷)이나 프린트 정렬에 유용합니다. SQL Server는 LEFT(str + REPLICATE(' ', n), n)처럼 조합합니다.

함수 원형

-- PostgreSQL / MySQL / Oracle
RPAD(str, len [, padstr])

입력과 출력

입력

str: text

len: int

padstr: text (기본 공백)

출력

padded: text

예시와 결과

1) 이름 열을 10칸에 맞춰 공백 패딩
SELECT RPAD('Lee', 10, ' ') AS name_fixed;
"Lee       "
2) SQL Server에서 에뮬레이션
SELECT LEFT('Lee' + REPLICATE(' ', 10), 10) AS name_fixed;
"Lee       "

📖 RPAD — PostgreSQL 📖 RPAD — MySQL 📖 RPAD — Oracle

REPEAT / REPLICATE — 문자열 반복

어떤 함수인가

주어진 문자열을 k번 반복하여 결합합니다. 데이터 마스킹, 시각적 구분선, 테스트 데이터 생성 등에 사용할 수 있습니다.

»
지원 DB: PostgreSQL(REPEAT), MySQL(REPEAT), SQL Server(REPLICATE). k ≤ 0이면 보통 빈 문자열을 반환합니다.

함수 원형

-- PostgreSQL / MySQL
REPEAT(str, count)

-- SQL Server
REPLICATE(str, count)

입력과 출력

입력

str: text

count: int — 반복 횟수

출력

rep: text — 결합된 문자열

예시와 결과

1) 구분선 만들기
-- PostgreSQL/MySQL
SELECT REPEAT('-', 20) AS bar;
-- SQL Server
SELECT REPLICATE('-', 20) AS bar;
"--------------------"
2) 간단 마스킹
-- 전화번호 뒤 4자리 마스킹 예
SELECT LEFT(phone, LENGTH(phone)-4) ||
       REPEAT('*', 4) AS masked
FROM users;  -- SQL Server: + 연산자, LEN()
"010-1234-****"

📖 REPEAT — PostgreSQL 📖 REPEAT — MySQL 📖 REPLICATE — SQL Server

 

반응형

'SQLD함수당' 카테고리의 다른 글

SQL 정규표현식: REGEXP_LIKE, REGEXP_REPLACE, REGEXP_SUBSTR  (0) 2025.11.10
SQL 윈도우 대표값 확장: LAST_VALUE, NTH_VALUE  (0) 2025.11.10
SQL 문자열 분할: SPLIT_PART, SUBSTRING_INDEX, STRING_SPLIT  (0) 2025.11.10
SQL 문자열 검색: POSITION/STRPOS, INSTR/LOCATE, CHARINDEX  (0) 2025.11.10
SQL 로그·지수 함수: LN/LOG, EXP, LOG10  (0) 2025.11.09
'SQLD함수당' 카테고리의 다른 글
  • SQL 정규표현식: REGEXP_LIKE, REGEXP_REPLACE, REGEXP_SUBSTR
  • SQL 윈도우 대표값 확장: LAST_VALUE, NTH_VALUE
  • SQL 문자열 분할: SPLIT_PART, SUBSTRING_INDEX, STRING_SPLIT
  • SQL 문자열 검색: POSITION/STRPOS, INSTR/LOCATE, CHARINDEX
모두모아냥
모두모아냥
모든 라이브러리의 함수 정리정리 블로그
  • 모두모아냥
    모든함수모두모아
    모두모아냥
    • 분류 전체보기 (128)
      • Numpy함수당 (45)
      • OpenGL함수당 (25)
      • SQLD함수당 (40)
      • Pandas함수당 (18)
      • 개인정보처리방침 (0)
  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.5
모두모아냥
SQL 문자열 패딩·반복: LPAD, RPAD, REPEAT/REPLICATE

티스토리툴바