5

正規表現でいっぱいのテーブルに列があります。

コードに文字列があり、その列のどの正規表現がその文字列に一致し、それらの行を返すかを調べたいと考えています。

各行を取得して正規表現を照合する以外に (コストがかかり、1 ページの読み込みで数千のレコードをチェックする可能性があります)、1 つ (または 2 つ) のクエリを使用して SQL でこれを行う方法はありますか?

入力例: W12ABC

列データの例

1   ^[W11][\w]+$  
2   ^[W12][\w]+$  
3   ^[W13][\w]+$ 
4   ^[W1][\w]+[A][\w]+$  
5   ^[W1][\w]+[B][\w]+$  
6   ^[W1][\w]+[C][\w]+$  

行 2 と 4 を返す必要があります。

4

2 に答える 2

1

T-SQL はこの機能を提供しませんが、.NET 正規表現クラスを使用して CLR 関数を記述することにより、SQL Server で有効にすることができます。その方法を説明する良い記事がここにあります。

于 2012-07-24T21:00:16.680 に答える
1

ワイルドカードを使用できる場合は、LIKE 構文で機能するパターンを保存できます: "W12%" または "W%ABC"。クエリは次のようになります。

SELECT * FROM テーブル Where 'W12ABC' LIKE カラム

于 2012-07-25T03:05:51.407 に答える