반응형
이번 글은 문자열을 고정 길이로 맞추거나 패턴을 반복할 때 쓰는 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
예시와 결과
-- PostgreSQL/MySQL/Oracle
SELECT LPAD('12345', 8, '0') AS order_no;
"00012345"
-- SQL Server
SELECT RIGHT(REPLICATE('0', 8) + '12345', 8) AS order_no;
"00012345"
RPAD — 오른쪽으로 채워 길이 맞추기
어떤 함수인가
문자열의 오른쪽을 패딩 문자로 채워 목표 길이에 맞춥니다. 목표 길이가 더 작으면 오른쪽을 잘라 길이를 맞춥니다.
»
고정 폭 레이아웃(예: 레거시 파일 포맷)이나 프린트 정렬에 유용합니다. SQL Server는
LEFT(str + REPLICATE(' ', n), n)처럼 조합합니다.함수 원형
-- PostgreSQL / MySQL / Oracle
RPAD(str, len [, padstr])
입력과 출력
입력
str: text
len: int
padstr: text (기본 공백)
출력
padded: text
예시와 결과
SELECT RPAD('Lee', 10, ' ') AS name_fixed;
"Lee "
SELECT LEFT('Lee' + REPLICATE(' ', 10), 10) AS name_fixed;
"Lee "
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 — 결합된 문자열
예시와 결과
-- PostgreSQL/MySQL
SELECT REPEAT('-', 20) AS bar;
-- SQL Server
SELECT REPLICATE('-', 20) AS bar;
"--------------------"
-- 전화번호 뒤 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 |
