2016-11-23 4 views

답변

1

SQL의 LIKE 연산자는 임의의 문자 수에 대해 %과 정확히 하나의 문자에 대해 _의 두 가지 와일드 카드 만 지원합니다. 정규 표현식을 지원하지 않습니다. Microsoft의 T-SQL에서 LIKE 연산자는 SQL 표준을 확장하고 가난한 사람의 정규 표현식 지원을 제공합니다. 에 regexp_like()에서 사용하는 정규 표현식은 매우 다른 (그리고 더 복잡한) 것을 http://docs.oracle.com/cd/B19306_01/server.102/b14200/conditions007.htm#i1048942

참고 : 자세한 내용은

select * 
from emp 
where regexp_like(ename, '[bsp]$', 'i'); 

은 설명서를 참조하십시오 : 오라클에서

당신은 올바른 정규식을 사용할 필요가 T-SQL에서 제공하는 간단한 "범위"표현입니다.

이 될 것이라고 표현하는 또 다른 방법 :

select * 
from emp 
where lower(substring(ename, -1)) in ('b', 's', 'p'); 
+0

두 번째 접근 방식은 매우 잘 작동합니다. 고맙습니다. 하지만 우리는 oracle에서 대괄호를 사용합니까 – Mathis

+0

@Mathis : 나의 첫 번째 예제를보십시오 : (실제) 정규 표현식에서 –