본문으로 건너뛰기
최종 수정: 에

RPAD

설명​

RPAD 함수(Right Padding)는 문자열의 오른쪽을 지정된 문자로 채워 지정된 길이가 되도록 합니다. 목표 길이가 원본 문자열의 길이보다 짧으면 문자열을 잘라냅니다. 이 함수는 바이트 길이가 아닌 문자 길이를 기준으로 계산합니다.

구문​

RPAD(<str>, <len>, <pad>)

매개변수​

매개변수설명
<str>패딩할 원본 문자열입니다. 타입: VARCHAR
<len>목표 문자 길이입니다(바이트 길이가 아님). 타입: INT
<pad>패딩에 사용할 문자열입니다. 타입: VARCHAR

반환 값​

패딩하거나 잘라낸 문자열을 VARCHAR 타입으로 반환합니다.

패딩 규칙:

  • len > 원본 문자열 길이: 전체 길이가 len에 도달할 때까지 오른쪽에 pad 문자열을 반복해서 덧붙입니다.
  • len = 원본 문자열 길이: 원본 문자열을 반환합니다.
  • len < 원본 문자열 길이: 문자열을 잘라내어 처음 len개의 문자만 반환합니다.
  • pad 문자열은 반복해서 사용하며, 일부 문자만 사용할 수도 있습니다.
  • 문자 길이를 기준으로 계산하며, UTF-8 멀티바이트 문자를 지원합니다.

특수한 경우:

  • 매개변수 중 하나라도 NULL이면 NULL을 반환합니다.
  • pad가 빈 문자열이고 len > str 길이이면 빈 문자열을 반환합니다.
  • len이 0이면 빈 문자열을 반환합니다.
  • len이 음수이면 NULL을 반환합니다.

예제​

  1. 기본 오른쪽 패딩
SELECT RPAD('hi', 5, 'xy'), RPAD('hello', 8, '*');
+---------------------+-----------------------+
| RPAD('hi', 5, 'xy') | RPAD('hello', 8, '*') |
+---------------------+-----------------------+
| hixyx | hello*** |
+---------------------+-----------------------+
  1. 문자열 잘라내기
SELECT RPAD('hello', 1, ''), RPAD('hello world', 5, 'x');
+----------------------+------------------------------+
| RPAD('hello', 1, '') | RPAD('hello world', 5, 'x') |
+----------------------+------------------------------+
| h | hello |
+----------------------+------------------------------+
  1. NULL 값 처리
SELECT RPAD(NULL, 5, 'x'), RPAD('hi', NULL, 'x'), RPAD('hi', 5, NULL);
+---------------------+------------------------+----------------------+
| RPAD(NULL, 5, 'x') | RPAD('hi', NULL, 'x') | RPAD('hi', 5, NULL) |
+---------------------+------------------------+----------------------+
| NULL | NULL | NULL |
+---------------------+------------------------+----------------------+
  1. 빈 문자열과 길이가 영인 경우
SELECT RPAD('', 0, ''), RPAD('hi', 0, 'x'), RPAD('', 5, '*');
+-----------------+-------------------+--------------------+
| RPAD('', 0, '') | RPAD('hi', 0, 'x') | RPAD('', 5, '*') |
+-----------------+-------------------+--------------------+
| | | ***** |
+-----------------+-------------------+--------------------+
  1. 빈 패딩 문자열
SELECT RPAD('hello', 10, ''), RPAD('hi', 2, '');
+-----------------------+-------------------+
| RPAD('hello', 10, '') | RPAD('hi', 2, '') |
+-----------------------+-------------------+
| | hi |
+-----------------------+-------------------+
  1. 긴 패딩 문자열과 반복 사용
SELECT RPAD('hello', 10, 'world'), RPAD('X', 7, 'ABC');
+----------------------------+----------------------+
| RPAD('hello', 10, 'world') | RPAD('X', 7, 'ABC') |
+----------------------------+----------------------+
| helloworld | XABCABC |
+----------------------------+----------------------+
  1. UTF-8 멀티바이트 문자 패딩
SELECT RPAD('hello', 10, 'ṭṛì'), RPAD('ḍḍumai', 3, 'x');
+---------------------------+--------------------------+
| RPAD('hello', 10, 'ṭṛì') | RPAD('ḍḍumai', 3, 'x') |
+---------------------------+--------------------------+
| helloṭṛìṭṛ | ḍḍu |
+---------------------------+--------------------------+
  1. 숫자 문자열 서식 지정
SELECT RPAD('$99', 8, '.'), RPAD('Item1', 10, ' ');
+---------------------+------------------------+
| RPAD('$99', 8, '.') | RPAD('Item1', 10, ' ') |
+---------------------+------------------------+
| $99..... | Item1 |
+---------------------+------------------------+
  1. 테이블 열 정렬
SELECT RPAD('Name', 15, ' '), RPAD('Price', 10, ' ');
+------------------------+------------------------+
| RPAD('Name', 15, ' ') | RPAD('Price', 10, ' ') |
+------------------------+------------------------+
| Name | Price |
+------------------------+------------------------+
  1. 음수 길이 처리
SELECT RPAD('hello', -1, 'x'), RPAD('test', -5, '*');
+------------------------+------------------------+
| RPAD('hello', -1, 'x') | RPAD('test', -5, '*') |
+------------------------+------------------------+
| NULL | NULL |
+------------------------+------------------------+