쿼리좀 알려주세요 ㅠㅠ 0 8 1,757

by 투명강아지 [SQL Query] [2013.07.04 11:26:20]


오라클 이구요

select '123452020014527' from dual;

일때 특정 문자 2020 을 찾아서 2020뒤에 있는 01 2개 뒤에 데이터 45를
찾을수 있는 방법이 있을까요??
2020의 위치는 변경될수 있지만 무조건 2020 두개데이터 뒤에 45를 찾을수만 있으면 됩니다.

부탁 드리겠습니다.
by 우리집아찌 [2013.07.04 11:33:58]

SELECT  SUBSTR( txt , INSTR(txt,'2020')+LENGTH('2020')+2 , 2 )  FROM
(select '123452020014527' txt from dual ) T ;

by 우리집아찌 [2013.07.04 11:34:16]
근데 2020 두개면요?

by 투명강아지 [2013.07.04 11:35:47]
정확한 답변 감사 합니다.
유일값이라 중복은 존재하지 않을것 같습니다.

by 아발란체 [2013.07.04 11:40:57]
--또 다른 방법으로.
--근데 아찌님게 더 범용적이고 가독성이 좋아 보임!
SELECT
 REGEXP_REPLACE('123452020014527', '(^.*2020[0-9]{2})([0-9]{2}).*', '\2')
FROM
 DUAL

by 우리집아찌 [2013.07.04 11:54:56]
제쿼리는 오라클 9i에서 멈춰있습니다 ^^*

by 부쉬맨 [2013.07.04 13:04:16]
저두요 ㅋㅋ

by 용근님 [2013.07.04 13:26:26]

regexp_like ( col, '2020[[:digit:]]{2}45' )

by 우리집아찌 [2013.07.04 13:43:52]
정규식은 암호같아서 못알아먹겠어요.. ㅋㅋ
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입