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

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

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

포스팅 목차

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


    [ TRIM Oracle Function ]

     


    TRIM 함수는 문자열 trim_source의 선행 또는 후행(양쪽) 부분에서 trim_character와 같은 문자를 모두 제거한다. 만약 trim_character 또는 trim_source가 문자 상수를 지정했다면, 인용부호로 둘러쌀 필요가 있다.

     

    • 만약 LEADING을 지정했다면, 오라클 데이터 베이스는 trim_charcter과 동일한 선행 문자를 삭제한다.
    • 만약 TRAILING을 지정했다면, 오라클 데이터 베이스는 trim_charcter과 동일한 후행 문자를 삭제한다.
    • 만약 BOTH를 지정했다면, 오라클 데이터 베이스는 trim_charcter과 동일한 선행과 후행 문자를 삭제한다.
    • 만약 trim_character을 지정하지 않으면, 기본 값은 공백이다.
    • 만약 단지 trim_source를 지정했다면, 오라클은 선행과 후행 공백을 제거한다.
    • 함수는 VARCHAR2 데이터 형의 값을 반환한다. 값의 최대 length는 trim_source의 length이다.
    • 만약 trim_source 또는 trim_charcter 중에 한쪽이 NULL이면, TRIM 함수는 Null을 반환한다.

     

     


    1. Oracle(오라클)

     

    TRIM() 함수

    Oracle Programming
    SELECT trim(' ABCDE ') str_trim, LENGTH(trim(' ABCDE ')) trim_len
    FROM   DUAL;

     

    Results
    STR_TRIM	TRIM_LEN
    -----------------------------
    ABCDE		5

     


    문자열 ‘xyxXxySTATWITH WITHMOOC’의 양쪽 끝에서부터 ‘x’와 ‘y’ 문자를 제거한 문자열을 반환한다.

    Oracle Programming
    SELECT TRIM('xyxXxySTATWITH WITHMOOC','xy') "LTRIM example"
    FROM DUAL;

     


    2. Python Pandas(파이썬)

     

    strip() 함수

    strip 함수를 사용하여서 문자열 ‘xyxXxySTATWITH WITHMOOC’ 의 양쪽 끝에서부터 ‘x’와 ‘y’ 문자를 제거한 문자열을 반환한다.

     

    Python Programming
    'xyxyxxXxySTATWITH WITHMOOCxyxyxy'.strip('xy')

     

    Results
    'XxySTATWITH WITHMOOC'

     


    re.sub() 함수와 정규 표현식

    re.sub 함수와 정규 표현식을 사용하여서 문자열 ‘xyxXxySTATWITH WITHMOOC’ 의 양쪽 끝에서부터 ‘x’와 ‘y’ 문자를 제거한 문자열을 반환한다.

     

    Python Programming
    re.sub(r'(^[xy]+)|([xy]+$)', '', 'xyxyxxXxySTATWITH WITHMOOCxyxyxy')

     

    Results
    'XxySTATWITH WITHMOOC'

     


    strip() 함수

    개별 사원 이름의 양쪽(선행/후행) 끝에서부터 검색을 시작하여 ‘S’ 문자를 제거한 문자열을 반환한다.

     

    Python Programming
    emp['ename'].apply(lambda x: x.strip('S'))

     

    Results
    0       MITH
    1      ALLEN
    2       WARD
    3       JONE
    4     MARTIN
    5      BLAKE
    6      CLARK
    7       COTT
    8       KING
    9     TURNER
    10      ADAM
    11      JAME
    12      FORD
    13    MILLER
    Name: ename, dtype: object

     

     


    3. R Programming (R Package)

     

    gsub() 함수와 정규 표현식

    gsub 함수와 정규 표현식을 사용하여서 문자열 ‘xyxXxySTATWITH WITHMOOC’ 의 양쪽 끝에서부터 ‘x’와 ‘y’ 문자를 제거한 문자열을 반환한다.

     

    R Programming
    %%R
    
    gsub("(^[xy]+)|([xy]+$)", "", 'xyxyxxXxySTATWITH WITHMOOCxyxyxy')

     

    Results
    [1] "XxySTATWITH WITHMOOC"

     


    sub() 함수와 정규 표현식

     

    R Programming
    %%R
    
    sub("(^[xy]+)|([xy]+$)", "", 'xyxyxxXxySTATWITH WITHMOOC', perl = TRUE)

     

    Results
    [1] "XxySTATWITH WITHMOOC"

     


    gsub() 함수와 정규 표현식

    개별 사원 이름의 양쪽(선행/후행) 끝에서부터 검색을 시작하여 ‘S’ 문자를 제거한 문자열을 반환한다.

     

    R Programming
    %%R
    
    gsub("^S|S$", "", emp$ename)

     

    Results
     [1] "MITH"   "ALLEN"  "WARD"   "JONE"   "MARTIN" "BLAKE"  "CLARK"  "COTT"  
     [9] "KING"   "TURNER" "ADAM"   "JAME"   "FORD"   "MILLER"

     

     

     


    4. R Dplyr Package

     

    sub() 함수와 정규 표현식

    개별 사원 이름의 양쪽(선행/후행) 끝에서부터 검색을 시작하여 ‘S’ 문자를 제거한 문자열을 반환한다.

     

    R Programming
    %%R
    
    emp %>%
      dplyr::mutate(str_trim = sub("^S|S$", "", ename, perl = TRUE)) %>%
      head()

     

    Results
    # A tibble: 6 x 9
      empno ename  job        mgr hiredate     sal  comm deptno str_trim
      <dbl> <chr>  <chr>    <dbl> <date>     <dbl> <dbl>  <dbl> <chr>   
    1  7369 SMITH  CLERK     7902 1980-12-17   800    NA     20 MITH    
    2  7499 ALLEN  SALESMAN  7698 1981-02-20  1600   300     30 ALLEN   
    3  7521 WARD   SALESMAN  7698 1981-02-22  1250   500     30 WARD    
    4  7566 JONES  MANAGER   7839 1981-04-02  2975    NA     20 JONE    
    5  7654 MARTIN SALESMAN  7698 1981-09-28  1250  1400     30 MARTIN  
    6  7698 BLAKE  MANAGER   7839 1981-03-01  2850    NA     30 BLAKE   

     

     


    5. R sqldf Package

     

    Trim() 함수

    trim 함수를 사용하여서 공백이 포함된 문자열 ‘ ABCDE ‘ 의 양쪽 끝에서 공백 문자를 제거한 문자열을 반환한다.

     

    R Programming
    %%R
    
    sqldf(" SELECT trim(' ABCDE ') str_trim, LENGTH(trim(' ABCDE ')) trim_len ")

     

    Results
      str_trim trim_len
    1    ABCDE        5

     


    Trim() 함수

    문자열 ‘xyxXxySTATWITH WITHMOOC’ 의 양쪽 끝에서부터 ‘x’와 ‘y’ 문자를 제거한 문자열을 반환한다.

     

    R Programming
    %%R
    
    sqldf(" SELECT TRIM('xyxyxxXxySTATWITH WITHMOOCxyxyxy','xy') str_trim ")

     

    Results
                 str_ltrim
    1 XxySTATWITH WITHMOOC

     

     

     


    6. Python pandasql Package

     

    Trim() 함수

     

    Python Programming
    ps.sqldf(" SELECT trim(' ABCDE ') str_trim, LENGTH(trim(' ABCDE ')) trim_len ")

     

    Results
    	str_trim	trim_len
    0	ABCDE		5

     


    Trim() 함수

     

    Python Programming
    ps.sqldf(" SELECT TRIM('xyxyxxXxySTATWITH WITHMOOCxyxyxy','xy') str_trim ")

     

    Results
    	str_trim
    0	XxySTATWITH WITHMOOC

     


    7. R data.table Package

     

    sub() 함수와 정규 표현식

    개별 사원 이름의 양쪽(선행/후행) 끝에서부터 검색을 시작하여 ‘S’ 문자를 제거한 문자열을 반환한다.

     

    R Programming
    %%R
    
    DT          <- data.table(emp)
    dept_DT     <- data.table(dept)
    
    DT[, str_trim := sub("^S|S$", "", ename, perl = TRUE)][1:10]

     

    Results
        empno  ename       job  mgr   hiredate  sal comm deptno str_trim
     1:  7369  SMITH     CLERK 7902 1980-12-17  800   NA     20     MITH
     2:  7499  ALLEN  SALESMAN 7698 1981-02-20 1600  300     30    ALLEN
     3:  7521   WARD  SALESMAN 7698 1981-02-22 1250  500     30     WARD
     4:  7566  JONES   MANAGER 7839 1981-04-02 2975   NA     20     JONE
     5:  7654 MARTIN  SALESMAN 7698 1981-09-28 1250 1400     30   MARTIN
     6:  7698  BLAKE   MANAGER 7839 1981-03-01 2850   NA     30    BLAKE
     7:  7782  CLARK   MANAGER 7839 1981-01-09 2450   NA     10    CLARK
     8:  7788  SCOTT   ANALYST 7566 1982-12-09 3000   NA     20     COTT
     9:  7839   KING PRESIDENT   NA 1981-11-17 5000   NA     10     KING
    10:  7844 TURNER  SALESMAN 7698 1981-09-08 1500    0     30   TURNER

     


    8. Python Duckdb의 SQL

     

    TRIM() 함수

     

    Python Programming
    %%sql
      SELECT TRIM('xyxXxySTATWITH WITHMOOC','xy') LTRIM_func

     

    Python Programming
    duckdb.sql(" SELECT TRIM('xyxXxySTATWITH WITHMOOC','xy') LTRIM_func ").df()

     

    Results
                 LTRIM_func
    0  XxySTATWITH WITHMOOC

     


     

    TRIM() 함수

     

    Python Programming
    %%sql
      SELECT trim(' ABCDE ') str_trim, LENGTH(trim(' ABCDE ')) trim_len

     

    Python Programming
    print( duckdb.sql(" SELECT trim(' ABCDE ') str_trim, LENGTH(trim(' ABCDE ')) trim_len ").df() )

     

    Results
      str_trim  trim_len
    0    ABCDE         5

     


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

     

    [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 예제로 만나는 테이블 데이터 처리 방법 리스트 링크 링크
    반응형

    댓글