[SAP HANA]LIKE_REGEXPR / [ORACLE]REGEXP_LIKE
둘 다 모두 정규식과 + like를 합친 함수이다. 이름만 다를 뿐 사용하고자 하는 것은 비슷하다.
즉, 정규식을 통해 정규식과 일치하는 경우를 반환해준다.
SAP Help Portal
help.sap.com
LIKE_REGEXPR에 대한 공식 문서이다.
SELECT * FROM mytab WHERE text LIKE_REGEXPR ' them|this ';
위와 같이 사용된다. 저 괄호 안에 정규식 패턴을 넣는다면, 해당 정규식에 일치하는 값들이 나온다.
'|'(정규표현식에서 or를 의미함)를 같이 사용한다면, in과 같은 효과를 누릴 수 있다.
예시를 들자면, user라는 USERS 테이블에서 EMAIL 열이 유효한 이메일 주소인 행들을 검색하려면 아래와 같이 사용할 수 있다.
SELECT * FROM USERS WHERE EMAIL LIKE_REGEXPR '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
오라클에서는 REGEXP_LIKE라고 사용을 하는데 위와 똑같고 함수만 다르다.
https://docs.oracle.com/cd/B12037_01/server.101/b10759/conditions018.htm
REGEXP_LIKE
REGEXP_LIKE REGEXP_LIKE is similar to the LIKE condition, except REGEXP_LIKE performs regular expression matching instead of the simple pattern matching performed by LIKE. This condition evaluates strings using characters as defined by the input character
docs.oracle.com
SELECT * FROM mytab WHERE REGEXP_LIKE(text,'them|this ');
만약 오라클에서도 sap hana와 같은 예시를 든다고 가정한다면 아래와 같이 사용할 수 있다.
SELECT * FROM CUSTOMERS WHERE REGEXP_LIKE(EMAIL, '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$')