2017-03-28 1 views
1

이전에 MySQL을 사용 중이었고 REGEXP을 사용하는 쿼리가있었습니다. 나는 특정 문자로 시작하는 site_id의를 찾기 위해 노력하고, 다음과 같은 사용 해요 : SQL Server는 문자열 목록으로 시작합니다.

WHERE site_id REGEXP '^(AB|BC|AO|BO|CA|PAF|Z)' 

는 기본적으로 어디 site_id LIKE 'AB%' OR 'BC%'...를 행을 찾기 위해 노력을하지만 난에 맞게 꽤 많은 문자열을 가지고 있기 때문에, 내가 좋아하는 것까지 덜 모호한 방식으로하십시오.

불행하게도 SQL 서버는이 구문을 좋아하지 않는 것 나는 오류 얻을 : LIKE 'XX%' OR ...의 힙을 사용하지 않고이 일을 깔끔한 방법은

An expression of non-boolean type specified in a context where a condition is expected, near 'REGEXP'.DB-Lib error message 4145, severity 15: General SQL Server error: Check messages from the SQL Server

거기를?

답변

3

left, orin의 조합을 사용하여 쿼리를 단축 할 수 있습니다.

WHERE left(site_id,2) in ('AB', 'BC', 'AO', 'BO', 'CA') or left(site_id, 3) = 'PAF' or left(site_id, 1) = 'Z'