반응형
LPAD()와 RPAD()는 문자열의 왼쪽이나 오른쪽에 지정한 문자로 길이를 맞춰주는 함수이다.
코드 포맷 정리, 자리수 고정, 시리얼 번호 출력 등 실무에서 자주 쓰인다.

🔷 LPAD(str, length, pad_str): 왼쪽 패딩
문법
LPAD(원본문자열, 원하는총길이, 채울문자)
왼쪽에 pad_str를 반복해서 붙여 전체 길이를 length로 맞춘다.
예제
SELECT LPAD('25', 5, '0'); -- 결과: '00025'
SELECT LPAD('abc', 6, '*'); -- 결과: '***abc'
실무 예제
-- 고객 ID를 6자리로 맞추기
SELECT LPAD(customer_id, 6, '0') AS padded_id FROM customers;
-- 숫자를 출력용 코드로 변환 (예: 7 → A00007)
SELECT CONCAT('A', LPAD(num, 5, '0')) AS code FROM serials;
반응형
🔸 RPAD(str, length, pad_str): 오른쪽 패딩
문법
RPAD(원본문자열, 원하는총길이, 채울문자)
오른쪽에 pad_str를 반복해서 붙인다. 고정 너비 포맷, 보고서 출력 등에서 자주 사용된다.
예제
SELECT RPAD('abc', 6, '.'); -- 결과: 'abc...'
SELECT RPAD('2025', 8, '0'); -- 결과: '20250000'
실무 예제
-- 이름 필드를 고정 길이로 출력
SELECT RPAD(name, 10, ' ') AS fixed_name FROM users;
-- 메시지를 일정 길이로 포맷
SELECT RPAD(message, 20, '_') AS padded_msg FROM logs;
🧠 LPAD vs RPAD 비교 요약
| 함수명 | 방향 | 사용 예시 | 주 용도 |
| LPAD | 왼쪽 | LPAD('7', 3, '0') → '007' | 코드, 번호 포맷 고정 |
| RPAD | 오른쪽 | RPAD('abc', 5, '.') → 'abc..' | 보고서 출력 정렬, 고정 폭 |
⚠️ 주의사항
- pad_str은 하나의 문자 이상 가능하지만, 지정한 length를 초과하면 자르고 끝냄
- 원래 문자열 길이가 length 이상이면 패딩 없이 원본 그대로 반환
- NULL 입력 시 결과는 NULL
예외 상황
SELECT LPAD('abc', 2, '-'); -- 결과: 'abc' (길이 줄이지 않음, 원본 그대로)
SELECT LPAD(NULL, 5, 'x'); -- 결과: NULL
반응형
💡 실무 활용 꿀팁
1. 고정 폭 텍스트 파일 생성 시
SELECT
RPAD(name, 10, ' ') AS name,
LPAD(score, 5, '0') AS score
FROM students;
2. 시리얼 넘버 출력
SELECT CONCAT('S', LPAD(id, 6, '0')) AS serial_no
FROM products;
3. HTML 보고서용 문자열 정렬
SELECT CONCAT('<td>', RPAD(title, 20, ' '), '</td>') FROM posts;
패딩 함수는 단순해 보이지만, 정형화된 출력이 필요한 모든 곳에서 필수 도구이다.
🔗 참고 공식 문서
https://dev.mysql.com/doc/refman/8.0/en/string-functions.html
반응형
'DB' 카테고리의 다른 글
| [MySQL] 문자열 인코딩과 포맷 함수: CHAR, ASCII, HEX 등 총정리 (0) | 2025.07.19 |
|---|---|
| [MySQL] 반복, 역순, 공백 함수: REPEAT, REVERSE, SPACE 정리 (1) | 2025.07.19 |
| [MySQL] 대소문자 변환 함수: UPPER, LOWER 실습 가이드 (0) | 2025.07.19 |
| [MySQL] 문자열 공백 제거 함수: TRIM, LTRIM, RTRIM 비교 (0) | 2025.07.19 |
| [MySQL] 문자열 치환 함수: REPLACE 실무 활용법 (1) | 2025.07.19 |
| [MySQL] 문자열 검색 함수: INSTR, LOCATE, POSITION 비교 (0) | 2025.07.19 |
| [MySQL] 문자열 추출 함수: LEFT, RIGHT, SUBSTRING 정리 (0) | 2025.07.19 |
| [MySQL] 문자열 연결 함수: CONCAT, CONCAT_WS 활용법 (0) | 2025.07.19 |