Verity's Daily Logs_

[ORACLE] 문자열 함수 본문

ORACLE

[ORACLE] 문자열 함수

johye0 2020. 5. 28. 09:16
반응형

1. 문자열 연결하기 

SELECT '문자열 '||'연결 함수' FROM DUAL;

 

2. 대/소문자 변환

SELECT UPPER('abcd') 대문자변환, LOWER('ABCD') 소문자변환 FROM DUAL;

 

3. 문자열 채우기

-- 10자리가 채워질때까지 왼쪽에 문자 '%' 를 넣어 출력함
-- 결과 : %%12345678
SELECT LPAD('12345678', 10, '%') lpad_number FROM DUAL;

-- 10자리가 넘을 경우 10자리만큼 잘라냄
SELECT LPAD('1234567891234', 10, '%') lpad_number FROM DUAL;
-- 결과 : 1234567891

-- 10자리가 채워질때까지 오른쪽에 문자 '%' 를 넣어 출력함
-- 결과 : 12345678%%
SELECT RPAD('12345678', 10, '%') lpad_number FROM DUAL;

 

4. 문자열 치환

SELECT REPLACE('010-1234-5678', '-', '') my_phone FROM DUAL;

 

5. 문자열 자르기

/*
SUBSTR(str, M, [N])
 - M 번째 자리부터 N 개만큼 잘라서 반환한다.
 - N이 없다면 문자열 끝까지 반환
 - M이 음수라면: 뒤에서 M번째 자리부터 자름
*/

-- 결과 : 567
SELECT SUBSTR('123456789', 5, 3) result FROM DUAL;

-- 결과 : 345
SELECT SUBSTR('123456789', -7, 3) result FROM DUAL;

 

6. 문자열 찾기

/*
INSRT(str, flag, [M], [N])
  - flag 가 검색된 위치를 반환한다. / 없으면 0
  - M 번째 자리에서부터 검색하여 반환한다.
  - N 번째로 검색되는 지점의 위치를 반환한다.
*/

-- 결과 : 3
SELECT INSTR('ab-cd-ef-gh', '-') result FROM DUAL;

-- 결과 : 6
SELECT INSTR('ab-cd-ef-gh', '-', 4) result FROM DUAL;

-- 결과 : 9
SELECT INSTR('ab-cd-ef-gh', '-', 4, 2) result FROM DUAL;

 

7. INSTR & SUBSTR 함께 사용하기  이번 포스팅의 목적

/*
  '-' 로 구분되는 두번째 데이터를 추출해내기
  결과 : cd
*/
SELECT SUBSTR (str,
               INSTR (str, '-') + 1,
                 INSTR (str,  '-', 1, 2) - INSTR (str, '-')  - 1) result
  FROM (SELECT 'ab-cd-ef-gh' str FROM DUAL);
반응형

'ORACLE' 카테고리의 다른 글

[ORACLE]시퀀스 값 수정하기  (0) 2020.06.01
Comments