본문 바로가기
통계프로그램 비교 시리즈/오라클함수 비교(R & Python)

RPAD 오라클 함수 [Oracle, Pandas, R Prog, Dplyr, Sqldf, Pandasql, Data.Table, DuckDB]

by 기서무나구물 2021. 12. 15.

포스팅 목차

    * 파이썬 & R 패키지 호출 및 예제 데이터 생성 링크


    [ RPAD Oracle Function ]

     


    RPAD 함수는 인수 expr1의 오른쪽으로 인수 expr2를 지정한 문자의 길이 n 만큼 반복하여 붙여준다. 이 함수는 쿼리의 출력 포맷을 맞추는데 도움이 된다.

     

     

     


    1. Oracle(오라클)

     

    RPAD() 함수

    ‘-=’를 10번 복사하여 ‘RPAD’ 오른편에 붙여서 반환한다.

     

    Oracle Programming
    SELECT RPAD('RPAD', 10, '-=') RPAD_FUNC
    FROM   DUAL;

     

    Results
    RPAD_FUNC
    ----------
    RPAD-=-=-=

     


    2. Python Pandas(파이썬)

     

    format()

    ‘RPAD’ 문자열 왼쪽 편으로 문자(“*”)를 반복하여 채워서 전체 길이를 10이 되도록 출력한다. ‘RPAD’의 길이가 4이므로 6만큼 ‘*’ 문자를 채운다.

     

    Python Programming
    '{message:{fill}{align}{width}}'.format(message='RPAD',fill='*',align='>',width=10,)  # 기준 문자열 왼쪽으로 채운다.

     

    Results
    '******RPAD'

     


    format()

     

    Python Programming
    '{message:{fill}{align}{width}}'.format(message='RPAD',fill='*',align='<',width=10,)  # 기준 문자열 오른쪽으로 채운다.

     

    Results
    'RPAD******'

     


    format()

     

    Python Programming
    # 기준 문자열 왼쪽으로 채운다
    
    '{:*>10}'.format('RPAD')

     

    Results
    '******RPAD'

     


    format()

     

    Python Programming
    # 기준 문자열 오른쪽으로 채운다.
    
    '{:*<30}'.format('LPAD')

     

    Results
    'LPAD**************************'

     


    format()

     

    Python Programming
    # 기준 문자열 왼쪽으로 공백 문자를 채운다.
    
    '{:>30}'.format('RPAD')

     

    Results
    '                          RPAD'

     


    format()

    Python Programming
    # 가운데 정렬을 한다.
    '{:^30}'.format('CENTER')

     

    Results
    '            CENTER            '

     


    format()

    숫자 1의 왼쪽 편에 0으로 반복적으로 채워서 전체 길이가 5가 출력한다.

     

    Python Programming
    "{:05d}".format(1)

     

    Results
    '00001'

     


    rjust()

    문자열 ‘RPAD’의 왼쪽 편에 ‘-‘ 문자를 반복적으로 채워서 전체 길이가 15가 되도록 출력한다.

     

    Python Programming
    'RPAD'.rjust(10, '-')

     

    Results
    '------RPAD'

     


    zfill()

    숫자 4의 왼쪽편에 0으로 반복적으로 채워서 전체 길이가 3이 되도록 출력한다.

     

    Python Programming
    '4'.zfill(3)

     

    Results
    '004'

     


    3. R Programming (R Package)

     

    stringr::str_pad()

    ‘RPAD’ 문자열 왼쪽 편으로 문자(“*”)를 반복하여 채워서 전체 길이를 10이 되도록 출력한다. ‘RPAD’의 길이가 4이므로 6만큼 ‘*’ 문자를 채운다.

     

    R Programming
    %%R
    
    stringr::str_pad(string = "RPAD" , width = 10 , side = "left" , pad = "*")

     

    Results
    [1] "******RPAD"

     


    stringi::stri_pad_left()

    R Programming
    %%R
    
    stringi::stri_pad_left("RPAD" , width = 10 , pad = "*")

     

    Results
    [1] "******RPAD"

     


    stringr::str_replace_all()

    R Programming
    %%R
    
    stringr::str_replace_all(sprintf('%10s','RPAD'),' ','*')

     

    Results
    [1] "******RPAD"

     


    format()

    R Programming
    %%R
    
    formatC(12, width=10 ,format='d', flag="0")

     

    Results
    [1] "0000000012"

     


    sprintf()

    R Programming
    %%R
    
    sprintf("%-6s","BAD")

     

    Results
    [1] "BAD   "

     


    4. R Dplyr Package

     


    5. R sqldf Package

     

    ‘RPAD’ 문자열 왼쪽 편으로 문자(“*”)를 반복하여 채워서 전체 길이를 10이 되도록 출력한다. ‘RPAD’의 길이가 4이므로 6만큼 ‘*’ 문자를 채운다.

    R Programming
    %%R
    
    library(sqldf)

     


    substr()

    R Programming
    %%R
    
    sqldf(" SELECT substr('**********'||'RPAD'  ,-10,10) as num_pad ")

     

    Results
         num_pad
    1 ******RPAD

     


    printf()

    R Programming
    %%R
    
    sqldf(" SELECT replace(printf('%10s','RPAD'),' ','*') as num_pad ")

     

    Results
         num_pad
    1 ******RPAD

     


    substr()

    R Programming
    %%R
    
    sqldf(" SELECT substr(12||'00000000',1,8) as num_pad ")

     

    Results
       num_pad
    1 12000000

     


    [참고] 대략적으로 구현(9글자는 문제)

     

    R Programming
    %%R
    
    sqldf(" SELECT REPLACE(printf('%-10s','LPAD'),' ','*') ")

     

    Results
      REPLACE(printf('%-10s','LPAD'),' ','*')
    1                              LPAD******

     


    substr()

    R Programming
    %%R
    
    sqldf(" SELECT substr('LPAD'||'**********'  ,1,10) as num_pad ")

     

    Results
         num_pad
    1 LPAD******

     


    6. Python pandasql Package

     


    7. R data.table Package

     


    8. Python Duckdb의 SQL

     

    RPAD() 함수

     

    Python Programming
    %%sql
      SELECT RPAD('RPAD', 10, '-=') as str_rpad

     

    Python Programming
    duckdb.sql(" SELECT RPAD('RPAD', 10, '-=') as str_rpad ").df()

     

    Results
         str_rpad
    0  RPAD-=-=-=

     


    ( https://unsplash.com/photos/Cecb0_8Hx-o )

     

      --------------------------------------------  

     

    [Oracle, Pandas, R Prog, Dplyr, Sqldf, Pandasql, Data.Table] 오라클 함수와 R & Python 비교 사전 목록 링크

     

    오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크

     

    [SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 링크 링크
    반응형

    댓글