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

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

by 기서무나구물 2021. 11. 30.

포스팅 목차

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


    [ LTRIM Oracle Function ]

     


    LTRIM함수는 문자열 char 좌측으로부터 set으로 지정된 모든 문자를 제거한다. 만약 set이 지정되지 않았다면, 디폴트로 한 개의 공백이 지정된다. 만약 char이 문자열이라면, 따옴표를 해야만 한다. 오라클 데이터 베이스는 char 첫 문자에서부터 스캔을 하여 set으로 지정된 모든 문자를 삭제한다. 지정한 set 이외의 문자 발견 시 결과를 반환한다.

     

     


    1. Oracle(오라클)

    Ltrim 함수를 사용하여서 문자열 좌측에서 ‘xy’ 문자를 모두 제거한다.

     

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

     

    Results
    LTRIM example
    ------------------------
    XxySTATWITH WITHMOOC

     


    2. Python Pandas(파이썬)

     

    lstrip() 함수

    Python Programming
    'xyxyxxXxySTATWITH WITHMOOC'.lstrip('xy')

     

    Results
    'XxySTATWITH WITHMOOC'

     


    re.sub() 함수 : 정규식 사용

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

     

    Results
    'XxySTATWITH WITHMOOC'

     


    lstrip() 함수

    Python Programming
    emp['job'].apply(lambda x: x.lstrip('CL|SA'))

     

    Results
    0           ERK
    1         ESMAN
    2         ESMAN
    3       MANAGER
    4         ESMAN
    5       MANAGER
    6       MANAGER
    7        NALYST
    8     PRESIDENT
    9         ESMAN
    10          ERK
    11          ERK
    12       NALYST
    13          ERK
    Name: job, dtype: object

     


    re.sub() 함수 : 정규식

    Python Programming
    emp['job'].apply(lambda x: re.sub(r'^[CL|SA]+', '', x) )

     

    Results
    0           ERK
    1         ESMAN
    2         ESMAN
    3       MANAGER
    4         ESMAN
    5       MANAGER
    6       MANAGER
    7        NALYST
    8     PRESIDENT
    9         ESMAN
    10          ERK
    11          ERK
    12       NALYST
    13          ERK
    Name: job, dtype: object

     

     


    3. R Programming (R Package)

     

    gsub() 함수

    R Programming
    %%R
    
    gsub("(^[xy]+)", "", 'xyxyxxXxySTATWITH WITHMOOC')

     

    Results
    [1] "XxySTATWITH WITHMOOC"

     


    sub() 함수

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

     

    Results
    [1] "XxySTATWITH WITHMOOC"

     


    gsub() 함수

    R Programming
    %%R
    
    gsub("(^[CL|SA]+)", "", emp$job)

     

    Results
     [1] "ERK"       "ESMAN"     "ESMAN"     "MANAGER"   "ESMAN"     "MANAGER"  
     [7] "MANAGER"   "NALYST"    "PRESIDENT" "ESMAN"     "ERK"       "ERK"      
    [13] "NALYST"    "ERK"      

     


    sub() 함수

    R Programming
    %%R
    
    sub("^[CL|SA]+", "", emp$job, perl = TRUE)

     

    Results
     [1] "ERK"       "ESMAN"     "ESMAN"     "MANAGER"   "ESMAN"     "MANAGER"  
     [7] "MANAGER"   "NALYST"    "PRESIDENT" "ESMAN"     "ERK"       "ERK"      
    [13] "NALYST"    "ERK"      

     

     


    4. R Dplyr Package

     

    sub() 함수

    R Programming
    %%R
    
    emp %>%
      dplyr::mutate(str_ltrim = sub("^[CL|SA]+", "", job, perl = TRUE)) %>%
      head()

     

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

     

     


    5. R sqldf Package

     

    ltrim() 함수

    R Programming
    %%R
    
    sqldf(" SELECT LTRIM('xyxyxxXxySTATWITH WITHMOOC','xy') str_ltrim ")

     

    Results
                 str_ltrim
    1 XxySTATWITH WITHMOOC

     


    ltrim() 함수

    R Programming
    %%R
    
    sqldf(" SELECT JOB, LTRIM(job,'CL|SA') str_ltrim from emp")

     

    Results
             job str_ltrim
    1      CLERK       ERK
    2   SALESMAN     ESMAN
    3   SALESMAN     ESMAN
    4    MANAGER   MANAGER
    5   SALESMAN     ESMAN
    6    MANAGER   MANAGER
    7    MANAGER   MANAGER
    8    ANALYST    NALYST
    9  PRESIDENT PRESIDENT
    10  SALESMAN     ESMAN
    11     CLERK       ERK
    12     CLERK       ERK
    13   ANALYST    NALYST
    14     CLERK       ERK

     

     


    6. Python pandasql Package

     

    ltrim() 함수

    Python Programming
    ps.sqldf(" SELECT LTRIM('xyxyxxXxySTATWITH WITHMOOC','xy') str_ltrim ")

     

    Results
    	str_ltrim
    0	XxySTATWITH WITHMOOC

     


    ltrim() 함수

    Python Programming
     
    ps.sqldf(" SELECT JOB, LTRIM(job,'CL|SA') str_ltrim from emp ").head()

     

    Results
    	job		str_ltrim
    0	CLERK		ERK
    1	SALESMAN	ESMAN
    2	SALESMAN	ESMAN
    3	MANAGER		MANAGER
    4	SALESMAN	ESMAN

     

     


    7. R data.table Package

     

    sub() 함수

    R Programming
    %%R
    
    DT          <- data.table(emp)
    dept_DT     <- data.table(dept)
    DT[, str_ltrim := sub("^[CL|SA]+", "", job, perl = TRUE)][1:10, ]

     

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

     


    8. Python DuckDB의 SQL

     

    Python Programming
    %%sql
      SELECT LTRIM('xyxXxySTATWITH WITHMOOC','xy') "LTRIM example"

     

    Python Programming
    duckdb.sql(" SELECT LTRIM('xyxXxySTATWITH WITHMOOC','xy') LTRIM_example ").df()

     

     

    Results
              LTRIM_example
    0  XxySTATWITH WITHMOOC

     


     

    Python Programming
    %%sql
      SELECT JOB, LTRIM(job,'CL|SA') str_ltrim 
      from   emp
      LIMIT  6

     

    Python Programming
    duckdb.sql(" SELECT JOB, LTRIM(job,'CL|SA') str_ltrim       \
                 from   emp                                     \
                 LIMIT  6 ").df()

     

    Results
            job str_ltrim
    0     CLERK       ERK
    1  SALESMAN     ESMAN
    2  SALESMAN     ESMAN
    3   MANAGER   MANAGER
    4  SALESMAN     ESMAN
    5   MANAGER   MANAGER

     


    Seoul, South Korea (https://unsplash.com/photos/-e6Xu27_T50)

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

     

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

    댓글