PostgreSQL 0 채우기 LPAD, RPAD 사용 방법

값을 처리하다보면 자릿수를 맞줘야 하는 경우가 있습니다.

특히 많은 경우가 값 앞에 0을 채우거나 뒤에 0을 채워야 하는 경우입니다.

지정한 자릿수 보다 값 길이가 모자란 경우 0을 채우는 방법에 대해 알아보겠습니다.

0을 채우기 위해서는 lpad와 rpad 함수를 사용하겠습니다.

 

LPAD

특정값 앞에 0을 채우는 방법을 알아보겠습니다.

값 앞에 값을 채우기 위해서는 LPAD 함수를 사용합니다.

LPAD 함수는 값의 왼쪽에 지정한 값을 빈 자리만큼 채워주는 함수입니다.

사용 방법을 확인해보겠습니다.

LPAD( 문자열 , 자릿수 , 채우고 싶은 문자)

 

첫 번째 인수인 문자열이 두 번째 인수인 자릿수 보다 작은 경우에는 세 번째에 지정한 채우고 싶은 문자열이 값 왼쪽에 채워지게 됩니다.

샘플을 보면서 확인해보겠습니다.

-- 앞에 0채우기 8자리
SELECT LPAD( '12345' , 8 , '0'); 
   lpad
----------
 00012345
(1 row)

-- 앞에 0채우기 10자리
SELECT LPAD( '12345' , 10 , '0');
    lpad
------------
 0000012345
(1 row)

-- 앞에 공백 채우기 10자리
SELECT LPAD( '12345' , 10 , ' ');
    lpad
------------
      12345
(1 row)

 

문자열이 지정한 자릿수보다 작은 경우에는 지정한 문자인 0으로 값이 채워졌습니다.

주의점으로는 문자열을 숫자 타입의 값을 넣으면 에러가 발생합니다.

문자열 타입의 값을 넣어야 합니다.

숫자 타입 값을 넣어야 하는 경우에는 형변환을 사용해야 합니다.

SELECT LPAD( CAST(12345 AS CHARACTER VARYING), 8 , '0');
   lpad
----------
 00012345
(1 row)

 

형변환인 CAST 사용 방법은 아래를 참조해주세요.

 

 

RPAD

문자열 뒤에 0을 채우는 방법을 알아보겠습니다.

값 뒤에 값을 채우기 위해서는 RPAD 함수를 사용합니다.

RPAD 함수는 값의 오른쪽에 지정한 값을 빈 자리만큼 채워주는 함수입니다.

사용 방법을 확인해보겠습니다.

RPAD( 문자열 , 자릿수 , 채우고 싶은 문자)

 

첫 번째 인수인 문자열이 두 번째 인수인 자릿수 보다 작은 경우에는 세 번째에 지정한 채우고 싶은 문자열이 값 오른쪽에 채워지게 됩니다.

샘플을 보면서 확인해보겠습니다.

-- 뒤에 0 채우기 8자리
SELECT RPAD( '12345' , 8 , '0');  
   rpad
----------
 12345000
(1 row)

-- 뒤에 0 채우기 10자리
SELECT RPAD( '12345' , 10 , '0'); 
    rpad
------------
 1234500000
(1 row)

-- 뒤에 공백 채우기 10자리
SELECT RPAD( '12345' , 10 , ' ');
    rpad
------------
 12345
(1 row)

 

LPADRPAD 함수를 사용해 빈 자리에 0을 채우는 방법을 알아봤습니다.

LPADRPAD 함수를 사용하면 0값 뿐만이 아닌, 원하는 값을 넣을 수 있습니다.

댓글