● REGEXP_LIKE 함수 사용

REGEXP_LIKE(srcstr,pattern,[math_option])
[[:alpha:]]
[[:digit:]] 숫자 인 것
[^[:digit:]] 숫자가 아닌 것
[[:punct:]] 특수문자
[^expression]
REGEXP_LIKE(product_nam,'SS[^P]') SS 다음에 P를 포함하지 않는
REGEXP_LIKE(product_nam,'SS[PS]') SS 다음에 P나 S를 포함하는
REGEXP_LIKE(text,'[a-z][0-9]') 영어 소문자전체와 0부터9까지의 숫자
REGEXP_LIKE(text,'[a-z] [0-9]') 영어 소문자전체와 공백 그리고 0부터9까지의 숫자
REGEXP_LIKE(text,'[a-z]?[0-9]') 영어 소문자전체와 여러 공백 그리고 0부터9까지의 숫자
REGEXP_LIKE(text,'[a-z]*[0-9]') 영어 소문자전체와 여러 공백 그리고 0부터9까지의 숫자
REGEXP_LIKE(text,'*[a-z]') 영어 소문자를 포함한 모든 문자
REGEXP_LIKE(text,'[A-Z]{3}') 대문자 영어가 연속으로 3자리 있는
REGEXP_LIKE(text,'[0-9]{3}') 숫자가 연속으로 3자리 있는
REGEXP_LIKE(text,'[A-Z][0-9]{3}') 영어대문자, 숫자 모두 3자리이상 있는
REGEXP_LIKE(text,'^[0-9]') 숫자로 시작하는
REGEXP_LIKE(text,'^[^0-9]') 숫자로 시작하지 않는
REGEXP_LIKE(text,'^[a-z]|^[0-9]') 영어 소문자 또는 숫자로 시작하는
REGEXP_LIKE(text,'[a-z]$') 영어 소문자 끝나는
REGEXP_LIKE(text,'A|1') 'A' 나 '1'을 포함하고 있는
NOT REGEXP_LIKE(text,'A|1') 'A' 나 '1'을 포함하지 않는
REGEXP_LIKE(text,'\?') '?' 가 포함되어 있는
REGEXP_LIKE(text,'A+') 'A'가 1개 이상인 Row
REGEXP_LIKE(text,'A?') 'A'가 0개 또는 1개이므로 'A'가 없거나 1개라도 있는(모든레코드)
REGEXP_LIKE(text,'A.') 'A' 뒤에 문자가 1개있는 레코드
REGEXP_LIKE(fnm,'\<')  특수문자 조회

문자교환 형식 변경

"\N" 백리퍼런스(Backreference) 서브표현식들 중에서 원하는 서브표현식을 지정할때 사용한다. \1~\9까지 사용가능하다.
REGEXP_REPLACE('ABC','(A)(B)(C)', '\3\2\1')
-> CBA

REGEXP_REPLACE('ABCDEFGHIJ','(A)(B)(C)(D)(E)(F)(G)(H)(I)', '\9\8\7')
-> IHGJ

'Oracle > SQL작성' 카테고리의 다른 글

세로를 가로로(PIVOT)  (0) 2023.04.02

- Decode, Max를 사용하여 결과를 가로로 표시되게 함.

SELECT
  part,
  MAX(decode(substr(d_seq,length(d_seq)-1,2),'01',c_cd)) A1,
  MAX(decode(substr(d_seq,length(d_seq)-1,2),'02',c_cd)) A2,
  MAX(decode(substr(d_seq,length(d_seq)-1,2),'03',c_cd)) A3,
  MAX(decode(substr(d_seq,length(d_seq)-1,2),'04',c_cd)) A4,
  MAX(decode(substr(d_seq,length(d_seq)-1,2),'05',c_cd)) A5,
  MAX(decode(substr(d_seq,length(d_seq)-1,2),'06',c_cd)) A6
FROM (
	SELECT 
        'SUAA'||(level+20000000) D_SEQ,
        'SUCH'||level P_CD,
        'SBAA'||level C_CD,
         to_char(sysdate,'YYYY/MM/DD') DT,
        '2' INST,
        'SU' PART,
        '100001' SAL,
        '3' INST1,
        '' ETC,
        '100001' ETC1,
         sysdate T_DT,
        '100001' ETC_CD,
         sysdate U_DT
	FROM dual
	CONNECT BY  level <=6
)
GROUP BY part

'Oracle > SQL작성' 카테고리의 다른 글

REGEXP_LIKE 함수 사용(정규표현식)  (0) 2023.06.02

+ Recent posts