1. TRIM
문자 양 옆의 공백 제거
select trim(' 오라클 ') from dual;
실행결과
2. LTRIM RTRIM
문자 왼쪽, 오른쪽의 공백만 제거
select ltrim(' 오라클 '), rtrim(' 오라클 ') from dual;
실행결과
특정 문자 모두 제거
select ltrim('000123456000', '0'), rtrim('000123456000', '0') from dual;
왼쪽 0 모두 제거, 오른쪽 0 모두 제거
실행결과
LEADING, TRAILING 을 이용할 수 있다.
select trim(leading 'z' from 'zzz오라클zzz'), trim(trailing 'z' from 'zzz오라클zzz') from dual;
leading - 앞서 나오는(앞부분) 문자 제거
trailing - 뒤따라 나오는(뒷부분) 문자 제거
trim 의 'z' 부분에는 단 하나의 문자만 들어갈 수 있다. 예를 들어 'zz'를 넣으면 오류가 발생한다.
3. LPAD RPAD
글자 수 맞추기
-- employee테이블에서 사원들의 이메일 정보를 가져옴.
-- 왼쪽부터 # 채워서 20자리 맞춤. 오른쪽부터 # 채워서 20자리 맞춤.
select lpad(email, 20, '#') as "lpad", rpad(email, 20, '#') as "rpad" from employee;
실행 결과
4. SUBSTR
특정 위치의 문자 가져오기
-- hello oracle 중 3번째 자리부터 5개 문자 가져오기
select substr('hello oracle', 3, 5) from dual;
공백 또한 자릿수에 포함된다.
실행 결과
같은 기능의 SUBSTRB()도 있다.
SUBSTRB(a, b, c)
a문자열 중 b자리부터 c바이트만큼 가져온다.
5. DISTINCT
중복 제거하기
-- employee의 성만 중복 제거 후 출력
select distinct substr(emp_name, 1, 1) from employee;
-- 컬럼 여러개를 넣으면 모두 중복 제거됨.
select distinct substr(emp_name, 1, 1), substr(emp_name, 1, 1) from employee;
distinct 뒤에 오는 모든 컬럼에 대해 중복을 제거한다.
실행 결과
6. REPLACE
특정 문자열 치환
select replace('this is oracle', 'oracle', 'database') from dual;
1번 인자에서 2번 인자를 3번인자로 변경한다.
여러개의 문자열을 찾으면 모두 변환한다.
실행 결과
7. INSTR
특정 문자열 위치 찾기
select instr(email, '@') from employee;
email 중에서 @가 몇 번째에 나오는지 찾기.
실행 결과
'Database' 카테고리의 다른 글
[오라클] 날짜처리 주요 함수 (0) | 2021.03.08 |
---|---|
[오라클] 숫자처리 주요 함수 (0) | 2021.03.08 |
[오라클] 사용자에게 권한 부여 및 회수하기 (0) | 2021.03.05 |
[오라클] CRUD 쿼리 정리 (0) | 2021.03.04 |
[오라클] 테이블 생성하기 (0) | 2021.03.04 |
댓글