본문 바로가기
2.2 DB/ORACLE

[Oracle] 문자 채우기 (LPAD, RPAD) +응용

by Dohi._. 2024. 10. 17.
728x90

오라클에서 특정 문자로 채워야할때  LPAD,RPAD 함수를 사용합니다.

 

우선 문자 길이를 맞추고나서 부족하면

LPAD는 왼쪽에  RPAD는 오른쪽에 특정 문자를 넣어주는 함수입니다.

 

즉 문자길이를 우선적으로 맞추고 나서 조정에 들어갑니다.

 

사용법 

둘다 같으며

LPAD( 값 , 문자길이 , 특정문자)

RPAD( 값 , 문자길이 , 특정문자)

만약 특정문자가 없을 경우 공백으로 대체됩니다.

 

특정문자가 들어가는 정도는 (문자길이 - 값의 문자 길이)의 만큼 들어갑니다.

예시 LPAD( 'dohi' , 7 , 'D')일경우에 D가 붙는 갯수는 3(=7-4)개로 왼쪽(L)에붙습니다 

 

 

사용 예제 

SELECT LPAD('dohi',6)     -- dohi가 길이가 6이 되도록 왼쪽에 2개의 공백추가
     , RPAD('dohi',6)     -- dohi가 길이가 6이 되도록 오른쪽에 2개의 공백추가
     , LPAD('dohi',5,' ') -- dohi가 길이가 5이 되도록 왼쪽에 1개의 공백추가
     , RPAD('dohi',6,4)   -- dohi가 길이가 6이 되도록 왼쪽에 2개의 4추가
     , LPAD('dohi',6,'9') -- dohi가 길이가 6이 되도록 오른쪽에 2개의 9추가
     , LPAD('dohi',2)     -- dohi의 길이가 2까지 반환 
     , RPAD('dohi',2)     -- dohi의 길이가 2까지 반환 
  FROM dual;

 

여기서 알수 있는 점은 

1. 문자열의 길이를 맞추는 작업을 실행합니다.( LPAD('dohi',2),  RPAD('dohi',2))의 경우 를 보면 do 반환

2. 그후 부족한 만큼 특정문자로 채웁니다.

이를 이용해서 다음과 같은 응용을 할 수 있습니다.

 

응용

다음처럼 응용이 가능하다.

SELECT  RPAD(SUBSTR(NAME,1,3),LENGTH(NAME),'*') as NAME
     ,  RPAD(SUBSTR(Ph_NB,1,3),7,'*')||SUBSTR(Ph_NB,-4) as PhoneNum
  FROM (SELECT 'GodDohi'       AS NAME
             , '01012345678'   AS Ph_NB -- 앞의 0이 유지되도록 문자열로 처리
          FROM dual
        )
;

 

 

 

추가 사용된 함수

SUBSTR (문자자르기), LENGTH(길이반환) 

 

728x90

댓글