2017-03-28 5 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 Serverは、この構文を好きにいないようだと、私はエラーを取得する:

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

LIKE 'XX%' OR ...のヒープを使用せずにこれを行うためのきちんとした方法はありますか?

答えて

3

leftor、およびinの組み合わせを使用すると、クエリを短縮できます。

WHERE left(site_id,2) in ('AB', 'BC', 'AO', 'BO', 'CA') or left(site_id, 3) = 'PAF' or left(site_id, 1) = 'Z' 
関連する問題