ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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

    댓글

Designed by Tistory.