[정규식 질문] 특정 위치에 특정 문자로 끝나는 조건 0 5 2,293

by 오라클초보자 [SQL Developer] 특정 문자 위치 조건 정규식 오라클 sql developper [2020.02.21 15:41:10]


안녕하세요 오라클을 시작한지 얼마 안된 학생입니다.

최근 정규식을 공부하게 되었는데

select regexp_substr('가나 다라 마바 사아 자카','[^ ]+',1,3) as col1 from dual; 

위의 식으로 3번째 띄어쓰기로 시작하는 마바라는 데이터를 추출하는 것 까지는 이해를 하겠는데

만약 테이블의 데이터가 '가나 다라 마바 사아 자카', '가나 다라 모바 사아 자카','가나 다라 무바 사아 자카','가나 다라 마부 사아 자카,'가나 다라 마보 사아 자카'이런식으로 여러개가 있을 경우에 3번째 띄어쓰기로 시작하는 데이터중 '바'로 끝나는 데이터만 추출하려면 어떻게 해야하는지 선배님들의 조언을 구해봅니다.

by ㅇㅇ준 [2020.02.21 15:54:21]
WITH A AS (SELECT '가나 다라 마바 사아 자카' COL1 FROM DUAL UNION ALL
           SELECT '가나 다라 마바바 사아 자카' FROM DUAL UNION ALL
           SELECT '가나 다라 바마 사아 자카' FROM DUAL )
SELECT COL1 FROM A
WHERE SUBSTR(REGEXP_SUBSTR(COL1,'[^ ]+',1,3),-1) = '바';

 


by 오라클초보자 [2020.02.21 16:01:08]

감사합니다! 근대 혹시 알려주신 식을 수행할경우 결과값이 '가나 다라 마바 사아 자카' 이런식으로 나올텐데 '마바'만 나오게 할 수는 없을까요?


by 오라클초보자 [2020.02.21 16:15:49]

WITH A AS (SELECT '가나 다라 마바 사아 자카' COL1 FROM DUAL UNION ALL
           SELECT '가나 다라 마바바 사아 자카' FROM DUAL UNION ALL
           SELECT '가나 다라 바마 사아 자카' FROM DUAL )
select regexp_substr('가나 다라 마바 사아 자카','[^ ]+',1,3)  as col1 from a where SUBSTR(REGEXP_SUBSTR(COL1,'[^ ]+',1,3),-1) = '바'; 로하면 되겠네요.

다시한번 감사드립니다!


by ㅇㅇ준 [2020.02.21 16:22:21]
WITH A AS (SELECT '가나 다라 마바 사아 자카' COL1 FROM DUAL UNION ALL
           SELECT '가나 다라 마바바 사아 자카' FROM DUAL UNION ALL
           SELECT '가나 다라 바마 사아 자카' FROM DUAL )
select regexp_substr(COL1,'[^ ]+',1,3)  as col1 from a where SUBSTR(REGEXP_SUBSTR(COL1,'[^ ]+',1,3),-1) = '바';

 


by 오라클초보자 [2020.02.21 16:27:05]

감사합니다 좋은하루되세요^^

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