-
[ORACLE] 문자열 자르기 substr( ) 활용DATABASE 2018. 11. 2. 17:17
1. 특수문자를 포함하여 뒤에 4자리는 제외하고 문자열 자르기
select val
from (
select '1231244-111' as val from dual
union all
select '12312534444*341' as val from dual
union all
select '1231223523544_523' as val from dual) a
select reverse(val) -- 문자열을 반대로
from (
select '1231244-111' as val from dual
union all
select '12312534444*341' as val from dual
union all
select '1231223523544_523' as val from dual) a
select substr(reverse(val), 5) -- 시작위치 5부터 문자열 끝까지 자르기 (문자열의 위치는 1부터 시작)
from (
select '1231244-111' as val from dual
union all
select '12312534444*341' as val from dual
union all
select '1231223523544_523' as val from dual) a
select reverse(substr(reverse(val), 5))
from (
select '1231244-111' as val from dual
union all
select '12312534444*341' as val from dual
union all
select '1231223523544_523' as val from dual) a
▷▶ 마지막 ' / ' 이후의 문자열만 추출하기
SELECT
reverse(substr(reverse(DATA),1, instr(reverse(DATA),'/') -1))
FROM (
SELECT 'oracle/web/programing.java' DATA
FROM DUAL
);
INSTR(비교할 문자, 비교하고자하는 문자, [비교를 시작할 위치],[비교하고자하는 문자 몇번째 위치])
: 비교하고자하는 문자의 위치값 반환 ( 몇번째 위치값 생략시 첫번째 위치값 반환)
instr(reverse(DATA),'/') -> 16
☞ substr(reverse(DATA),1, instr(reverse(DATA),'/') -1)
= substr(reverse(DATA, 1 , 15) 1~15번 위치까지의 문자열 추출
'DATABASE' 카테고리의 다른 글
[ORACLE] CONNECT BY LEVEL 활용 <달력> (0) 2018.11.05 [ORACLE] CONNECT BY LEVEL 개념 (0) 2018.11.05 [ORACLE] DECODE 와 CASE (0) 2018.11.05 [ORACLE] 함수 모음 (0) 2018.11.05 [ORACLE] NVL 함수 활용 (0) 2018.11.02