SQL class #3 REGEXP_LIKE, REGEXP_REPLACE
1. REGEXP_LIKE
SCOTT>select *
2 from reg_test
3 where regexp_like(text,'[a-z][0-9]')
4 ;
TEXT
----------
a1b2c3
aabbcc123
REGEXP_LIKE(text,'[a-z][0-9]') 이란, text 값의 내용중에 a-z로 시작하고, 0-9 까지 숫자가
오는 값만 추려서 출력을 해주는 함수 입니다.
2. REGEXP_LIKE (2)
SCOTT>SELECT *
2 FROM reg_test
3 WHERE REGEXP_LIKE(text,'[a-z]{3}')
4 ;
TEXT
----------
abc 123
aabbcc123
123abc
REGEXP_LIKE(text,'[a-z]{3}') 이란, text 칼럼 값중에 내용에 [a-z] 즉, 영어가 3글자
이상 연속으로 있는 값만 출력해 주는 함수 입니다.
3. REGEXP_LIKE (3)
SCOTT>SELECT *
2 FROM reg_test
3 WHERE REGEXP_LIKE(text,'^[a-z]')
4 ;
TEXT
----------
abc 123
a1b2c3
aabbcc123
REGEXP_LIKE(text,'^[a-z]') 이란, text 칼럼 값중에 소문자로 시작하는 행만
출력하는 함수 입니다.
4. REGEXP_LIKE (4)
SCOTT>SELECT *
2 FROM reg_test
3 WHERE REGEXP_LIKE(text,'[a-z]${3}')
4 ;
TEXT
----------
123abc
REGEXP_LIKE(text,'[a-z]${3}') 이란, text 칼럼 값중에 소문자 3자리 연속으로 끝이나는
행만 출력을 해주는 함수 입니다.
5. REGEXP_LIKE (5)
SCOTT>SELECT *
2 FROM reg_test
3 WHERE REGEXP_LIKE(text,'^[^0-9]')
4 ;
TEXT
----------
ABC123
ABC 123
abc 123
a1b2c3
aabbcc123
?/!@#$*&
\~*().,
7 rows selected.
REGEXP_LIKE(text,'^[^0-9]') 이란, text 칼럼 값중에 숫자로 시작하지 않는 행의 값만
출력을 해주는 함수 입니다.
6. REGEXP_REPLACE
SCOTT>SELECT name,tel
2 FROM student
3 WHERE REGEXP_REPLACE(tel,'(\d{2})\)(\d{4})\-(\d{4})','\2') > '5000'
4 ;
NAME TEL
---------- ---------------
김재수 02)6255-9875
일지매 02)6788-4861
김문호 02)6175-3945
허우 02)6122-2345
REGEXP_PLACE(tel,'(\d{2})\)(\d{4}\-(\d{4})','\2') > '5000' 이란, tel 칼럼 값중에
숫자가 2자리, 그리고 ')' 다시 숫자가 4자리 '-' 다시 숫자가 4자리가 오는행을 출력을 하는데
두번째인 숫자가 4자리가오는 부분의 숫자가 '5000'보다 많은 행을 출력하는 함수 입니다.
7. REGEXP_REPLACE (2)
SCOTT>SELECT name,
2 RTRIM(REGEXP_REPLACE(name,'(.)','\1-'),'-') "AFTER"
3 FROM student
4 WHERE deptno1=101;
NAME
----------
AFTER
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
서진수
서-진-수
김신영
김-신-영
일지매
일-지-매
이윤나
이-윤-나
RTRIM(REGEXP_PLACE(name,'(.)','\1-'),'-') "AFTER" 이란, name 칼럼 값중에
제일 마지막 글자만 빼고 글자 사이에 '-' 기호를 패턴으로 넣는 함수 입니다.
RTRIM과 함께 사용된것을 알수 있습니다.
이상으로 오늘은 REGEXP_LIKE, REGEXP_REPLACE 에대해서 알아봤습니다.
다음시간에는 숫자함수에 대해 알아보도록 하겠습니다.
감사합니다!! 수고하셨습니다!!
By. sTricky
'Database > ORACLE' 카테고리의 다른 글
비정상 종료로 인한 VMware 오류 해결책 입니다. (5) | 2013.06.03 |
---|---|
Oracle Admin 개념이해하기 (0) | 2013.05.22 |
Oracle 10g RAC asm setting #4 (0) | 2013.04.28 |
SQL class #2 SUBSTR (0) | 2013.04.26 |
Oracle 10g RAC asm setting #3 (0) | 2013.04.25 |