문자 추출 문의 0 6 670

by Taems [Oracle 기초] [2018.11.29 16:55:13]


안녕하세요. 문자 추출을 하려고 하는데요.

아래와 같이 change_after 처럼 나오게 하고 싶은데 REPLACE(REPLACE(REGEXP_SUBSTR(T, '[0-9]+pdf'), 'pdf'), '_','') 이런 방식으로는

추출이 안되는데. 추출 방법 좀 알려주시면 감사하겠습니다~

        change_before      change_after
5294710_A_2017 결과.pdf 5294710_2017.pdf
5269877_B_2017 결과.pdf 5269877_2017.pdf
76431_C_2017 결과.pdf 76431_2017.pdf

 

by 우리집아찌 [2018.11.29 20:32:25]
WITH T (change_before,change_after) AS (      
SELECT '5294710_A_2017 결과.pdf' ,	'5294710_2017.pdf' FROM DUAL UNION ALL
SELECT '5269877_B_2017 결과.pdf' ,	'5269877_2017.pdf' FROM DUAL UNION ALL
SELECT '76431_C_2017 결과.pdf'   ,	'76431_2017.pdf' FROM DUAL
)

SELECT change_before
     , change_after
     , REPLACE(REGEXP_REPLACE(change_before,'[^0-9|_|.pdf]+','') ,'__','_') change_after2
  FROM T 

 
 
  

 


by 마농 [2018.11.30 09:27:37]

설명은 없고 샘플은 동일한 형태 뿐이네요?
어떤 걸 지워야 하는지 설명이 필요하구요.
좀 다른 형태의 자료는 없는지? 확인이 필요합니다.


by Taems [2018.11.30 13:18:45]

우리집아찌님 감사합니다. 좋은 정보로 잘  활용하겠습니다~ 좋은 하루 되세요~^^


by Taems [2018.11.30 10:50:30]

넵 _2017 결과.pdf 는 다 동일한 형태 입니다. 5294710_A_2017 결과.pdf, 5269877_B_2017 결과.pdf, 76431_C_2017 결과.pdf 에서 _2017 결과.pdf 에서 A,B,C 와 결과를 제거한 

5294710_2017.pdf, 5269877_2017.pdf, 76431_2017.pdf 형태로 데이터를 나타내고자 합니다~


by 마농 [2018.11.30 11:01:55]

REGEXP_REPLACE(change_before, '_[A-C]| 결과')


by Taems [2018.11.30 13:24:29]

마농님 좋은 정보 감사합니다~ 다른 곳에도 잘 응용해서 사용하겠습니다~ 즐거운 하루 되세요~^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입