Oracle 글자 찾는 함수 INSTR, LITRM에 대해서 이야기 해보도록 하겠습니다. 우리가 문자의 시작 위치를 반환하거나, 아니면 데이터의 값이 어느 위치에 있는지 반환하고자 할 때 사용하는 함수는 많지만, 많은 데이터를 처리할 때 필요한 함수를 기억하는 것도 괘 좋은 방법이겠죠. 그래서 오늘은 INSTR과 LTRIM 그리고 RITRIM에 대해 정리해보았습니다.
서론
LENGTH : 문자의 길이를 찾을 수 있는 함수
LENGTH는 문자의 길이를 찾을 수 있는 함수로서, 사용하는 방법은 간단합니다. SELECT문에 찾고자 하는 컬럼명을 기재해주면 되는데요. 아래의 코드를 참조해주세요. ex) employee 테이블에 있는, 이메일 컬럼의 길이를 찾고싶다고 한다.
SELECT
length(email) --length(컬럼명)
FROM
employee; --테이블명
본론
1. INSTR : 지정한 위치부터 지정한 숫자번째로 나타나는 문자의 시작 위치를 반환하는 함수
(1) String : 문자 타입을 작성하거나, 컬럼명 혹은 문자열을 작성해줍니다.
(2) str : 찾으려는 문자열을 입력해줍니다. 찾으려는 문자열은 외따옴표로 작성해주도록 합니다.
(3) position : 설정한 값이 없을 때 찾는 위치의 시작 값을 의미합니다. 음수로 작성한다면 문자열 뒷부분부터, 문자열이 시작되는 방향으로 데이터를 찾습니다.
(4) 위치는 문자열의 몇 번째로 위치한 것인지 작성해줍니다.
INSTR(String,Str,position,위치)
FROM
테이블명
1-1 위와 같이 INSTR을 사용해서 데이터를 찾게되면 발생하는 문제점이 있다면 SQL에서는 이러한 코드를 작성하게 되면 한 행씩 접근을 하기 때문에 광범위한 데이터를 찾는 작업을 할 때는 속도가 느려질 수 있다는 점입니다.
이를 보완하기 위해서 index 함수를 사용하게 되는데, index 함수를 사용하고, 혹은 이에 대한 이해를 하려면 자료구조의 '트리 구조'를 먼저 알아야합니다.
트리구조에 대한 설명은 본 블로그 안의 검색란에 Oracle 트리구조 를 검색해주세요.
2. LTRIM / RTRIM
함수 : 문자열의 좌/우측 공백을 제거하고, 좌/우측의 반복적인 문자를 제거하는 함수입니다.
함수의 공식은 아래와 같습니다.
(1) String : 문자 타입을 작성하거나, 컬럼명 혹은 문자열을 작성해줍니다.
(2) str : 찾으려는 문자열을 입력해줍니다. 찾으려는 문자열은 외따옴표로 작성해주도록 합니다.
LTRIM(String,str)
RTIRM(String,str)
2-1 LTRIM / RTRIM 함수의 예제 : 휴대폰 번호를 제거하고 나머지 문자를 구하세요.
저는 미리 employee 테이블에, phone 컬럼과 email 컬럼을 만들어놨습니다. 아래와 같이 코드가 실행된다면, phone 컬럼의 010은 삭제되어 결과값이 입력됩니다. 쉽게 말해 아래의 코드의 의미는 " phone컬럼에 있는 010 지워줘" 라고 생각하면 됩니다. 만일 여기서, 공백 값을 지우고 싶다면 FROM문에 DUAL을 사용하면됩니다.
* 공백을 지우고자 할 때는 두 번째 코드를 참조해주세요.
SLELECT
ltrim(phone, '010'),
rtirm(email, '@kh.or.kr')
FROM
employee;
SELECT
ltrim(' 우아')
FROM
DUAL;
3. TRIM : 오른쪽의 특정 문자를 제거하는 방법입니다.
TRIM은 오른쪽의 특정 문자를 제거할 때 사용하는 방법입니다. 연산자도 제거해줄 수 있다는 것이 특징인데요. 공백을 제거해줄 FROM dual을 사용합니다. 아래와 같이 말이죠.
TRIM('S', '문자를 제거할 값')
TRIM('S','문자를 제거할 값')
TRIM( LEADING | TRAILING | BOTH [CHAR] FROM STRING)
SLELCT RTRIM('155566','6')
,RTRIM('123FFF','F')
,RTRIM('167+','+')
FROM
DUAL
'Oracle' 카테고리의 다른 글
Oracle 비교 연산자와 LIKE, NOT LIKE (0) | 2023.11.10 |
---|---|
Oracle 기본 개념 : 시퀀스 설정 (0) | 2023.11.10 |
Oracle 필수 개념 : 테이블, 따옴표, 컬럼 추가, 제약조건 (0) | 2023.11.09 |
댓글