오라클에서 regexp_like 에 * 하나만 있으면 어떤 의미인가요? 0 3 870

by 초초 [Oracle 기초] [2022.04.13 14:50:50]


regexp_like(cols, '*') 

이런 조건으로 검색 해 보니 null이 아닌 모든 컬럼이 조회가 되버리던데

저렇게 조건을 하면 한 글자 이상이면 모두 조회가 되는 조건이 되버리는건지가 궁금합니다..!!

by 동동동 [2022.04.13 15:47:17]
WITH TMP AS (
SELECT 'abc*_123' col, '1' gbn FROM DUAL UNION ALL
SELECT '가나 다라' col, '2' gbn FROM DUAL UNION ALL
SELECT ' ' col, '3' gbn FROM DUAL UNION ALL
SELECT '' col, '4' gbn FROM DUAL
)
SELECT * FROM TMP
WHERE regexp_like(col, '*');

 

null 이 아니면 전부 조회되네요..

 


by 마농 [2022.04.13 16:01:01]

* 은 반복(0회 이상 반복)을 의미하는데
반복 대상 뒤에 붙어서 표현됩니다.
반복 대상이 없는 단독 표현이 뭘 의미하는지 모르겠지만?
의미를 굳이 따지기 보다는 이런 방식의 사용을 하면 안될 것 같습니다.


by 초초 [2022.04.13 18:01:55]

네 저도 반복에 관련된거라고는 알고있었는데 regexp_like에 넣었을 때 저런 결과가 나올줄은 몰랐습니다...

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