oracle
2014-07-14 2 views 0 likes 
0

오라클에서는 문자열 끝에 "="기호가 있는지 확인하고 싶습니다. 확인 방법을 알려주십시오. 문자열 끝에 '='기호가 있으면 그 '='기호를 후행한다. 예를 들어 대한오라클 패턴 일치

,

varStr VARCHAR2(20); 

varStr = 'abcdef='; --needs to trailing '=' sign 

답변

0

사용 REGEX_EXP 기능. 당신이 당신의 질문 :

select * 
    from someTable 
where regexp_like(someField, '=$'); 
에 지정하지 않았기 때문에 나는 SQL 명령을 걸었습니다

패턴 $은 선행 문자가 문자열의 끝에 있어야 함을 의미합니다.

는 SQL 바이올린에 여기를 참조하십시오 http://sqlfiddle.com/#!4/d8afd/3

2

난 당신이 여기 "패턴 매칭을"필요가 있다고 생각하지 않습니다. 마지막 문자의 =

where substr(varstr, -1, 1) = '=' 

substr 문자열의 끝에서 작동 음의 위치로 호출 그래서 substr(varstr,-1,1)는 지정된 캐릭터 라인의 마지막 문자를 추출하면 그냥 확인.

0

약 400K 주소 행의 샘플 데이터와 함께 substr이 갈 길이 멀어서 평균적으로 0.2 초 안에 'r'으로 끝나는 1043 항목을 반환합니다.

select count(*) from addrline where substr(text, -1, 1) = 'r'; 

한편, 다음과 같은 결과가 반환되지만 1.1 초가 걸립니다.

select count(*) from addrline where regexp_like(text, 'r$'); 
관련 문제