-1
select * from emp where ename like '[bsp]%';
MS SQL Server에서 ename 열의 각 레코드의 첫 글자를 b, s 및 p와 비교하여 출력을 표시합니다.oracle 10g에서 대괄호와 같은 연산자를 사용하여 테이블의 레코드와 비교하는 방법은 무엇입니까?
오라클 10g를 사용하여 동일한 출력을 얻는 방법은?
select * from emp where ename like '[bsp]%';
MS SQL Server에서 ename 열의 각 레코드의 첫 글자를 b, s 및 p와 비교하여 출력을 표시합니다.oracle 10g에서 대괄호와 같은 연산자를 사용하여 테이블의 레코드와 비교하는 방법은 무엇입니까?
오라클 10g를 사용하여 동일한 출력을 얻는 방법은?
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');
두 번째 접근 방식은 매우 잘 작동합니다. 고맙습니다. 하지만 우리는 oracle에서 대괄호를 사용합니까 – Mathis
@Mathis : 나의 첫 번째 예제를보십시오 : (실제) 정규 표현식에서 –