로 나오게 하려면 어떻게 해야할까요 INSTR, SUBSTR, LENGTH 사용해서 짱구 굴려보는데 답이안나오네요 에휴..
도움부탁드립니다.(__)꾸벅
by 신이만든짝퉁
[2013.09.17 11:23:15]
WITH T1 AS ( SELECT 'ABCD.JSP' str FROM dual UNION ALL SELECT '<DIV>ABCDE.JSP</DIV>' str FROM dual ) SELECT regexp_substr(str, '[a-zA-Z]+\.[a-zA-Z]+') str FROM t1 ;
이렇게 해보세요~
by 신이만든짝퉁
[2013.09.17 11:50:30]
WITH T1 AS ( SELECT 'ABCD.JSP' str FROM dual UNION ALL SELECT '<DIV>ABCDE.JSP</DIV>' str FROM dual ) SELECT substr(regexp_substr(str, '([a-zA-Z]+)\.', 1),1, 4) str FROM t1 ;
원하시는 결과는 이게 맞을 것 같습니다.
by 클라나드
[2013.09.17 11:53:03]
무슨이유인지모르겠는데
regexp_substr 함수쓰면 오류 납니다.
오라클 11g 입니다.
열명이 부적합합니다라고 나옵니다.
왜그럴까요
by 윤
[2013.09.17 11:32:37]
--짝퉁님 배워봅니다 _ _) (꾸벅) ~감사합니다
--정규식을 배우는것도 있나요?
WITH T1 AS
(
SELECT 'ABCD.JSP'a FROM dual
UNION ALL SELECT '
ABCDE.JSP' FROM dual
)
SELECT regexp_substr (A, '[^.]+')a FROM (
select regexp_substr(a, '[a-zA-Z]+\.[a-zA-Z]+')a from t1);
by 아발란체
[2013.09.17 12:36:33]
//윤
정규식은 거의 표준이라고 생각하시면 됩니다.
자바스크립트 정규식을 마스터 하시면, 오라클 정규식, C정규식, 자바 정규식, 펄 정규식, 텍스트 에디터(EDITPLUS) 정규식를 마스터 했다고 볼 수 있습니다.
WITH T1 AS ( SELECT 'ABCD.JSP' filename FROM DUAL UNION ALL SELECT '<DIV>ABCDE.JSP</DIV>' FROM DUAL ) select SUBSTR(filename, REGEXP_INSTR(filename, '[a-zA-Z]+\.[a-zA-Z]') ,REGEXP_INSTR(filename, '\.') - REGEXP_INSTR(filename, '[a-zA-Z]+\.[a-zA-Z]')) as filename FROM t1;
여기에서 파일명 제약조건에 따라 정규표현식에 추가하시면 될것 같습니다.
by 클라나드
[2013.09.17 11:37:46]
제가 초보라 그러는데 regexp_substr 열명이 부적합합니다. 라는 오류 납니다. 왜이러는지..
by 마농
[2013.09.17 11:41:46]
위 두개의 데이터가 전체 모든 케이스를 대표하는 데이터인가요? 다른 유형의 데이터도 존재하는지 궁금하네요. 확장자는 .JSP 만 있는지 다른 것도 있는지? 확장자가 없는것은 없는지? <DIV> 테그 외에 다른것은 없는지? 등등... 이런 류의 문제는 가능한 모든 케이스를 검토해야 합니다.
by 클라나드
[2013.09.17 11:51:46]
정확한데이터는 저도 잘모르겠네요 ㅠㅠ 아유 저도 답답하네요..
by 클라나드
[2013.09.17 11:51:00]
WITH T1 AS
(
SELECT 'ABCDE.JSP' AA FROM dual
UNION ALL SELECT '<DIV>ABCDE.JSP</DIV>' AA FROM dual
)
SELECT
SUBSTR(SUBSTR(AA, 0, INSTR(AA, '.')-1),INSTR(TO_CHAR(AA), '>', 1)+1) AS BB
FROM t1;
이렇게 해결하였습니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.