포스팅 목차
* 파이썬 & 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을 반환한다.
- 함수 설명 : TRIM 오라클 함수 링크
- LTRIM 함수 , RTIMR 함수 참조 [Oracle, Pandas, R Prog, Dplyr, Sqldf, Pandasql, Data.Table]
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 예제로 만나는 테이블 데이터 처리 방법 리스트 링크 링크 |
댓글