sql
[SAP HANA] SUBSTR_REGEXPR/[ORACLE]REGEXP_SUBSTR
다있는닉네임
2023. 3. 7. 15:01
정규식을 이용해서 문자열을 잘라서 사용하는 함수
SAP Help Portal
help.sap.com
공식 홈페이지에서의 설명이다.
공홈에서는 아래와 같은 형식을 따른다고 한다.
SUBSTR[ING]_REGEXPR( <pattern> [ FLAG <flag> ] IN <regex_subject_string>
[ FROM <start_position> ]
[ OCCURRENCE <regex_occurrence> ]
[ GROUP <regex_capture_group> ] )
- source_string: 부분 문자열을 추출할 대상 문자열
- regex_pattern: 부분 문자열을 추출하기 위한 정규표현식 패턴
- start_position (선택 사항): 추출을 시작할 위치를 지정하는 정수값 기본값은 1
- occurrence (선택 사항): 추출할 부분 문자열이 발생하는 위치를 지정하는 정수값. 기본값은 1
잘라볼 데이터 예시를 들어보자
food라는 컬럼안에 값이 "coffe1sandwich2" 라는 데이터가 있다고 가정을 해보자.
SUBSTR_REGEXPR('정규식' IN 컬럼명 OCCURRENCE 추출할 부분 문자열이 발생하는 위치)
저기서 숫자 1,2만 가져오고 싶을 경우에는 어떻게 하면 좋을까?
SUBSTR_REGEXPR 사용할 경우
SUBSTR_REGEXPR ('[0-9]*' in 컬럼명 occurrence 1)
SUBSTR_REGEXPR ('[0-9]*' in 컬럼명 occurrence 3)
숫자만 가져오는 정규식 사용, 데이터를 가져오는 컬럼명 그리고 그 기준으로 잘랐을 때 처음의 경우는 1, 두번째의 경우는 2가 반환이 될 것이다.
정규식은 추후에 정리해볼 생각
REGEXP_SUBSTR 사용할 경우
REGEXP_SUBSTR(컬럼명, 정규식, 추출시작 위치, 추출할 부분 문자열이 발생하는 위치)
HANA와 커다란 차이는 없지만 함수명이 조금 다르다.