6文字以上の英数字の文字列を大文字で含むレコードを検索しようとしています。いくつかの例:
PENDING 3RDPARTY CODE27
私は次のステートメントを使用しています:
SELECT Details
FROM MyTable
WHERE Details LIKE '%[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]%';
これは、大文字と小文字に関係なく、6文字以上の単語を含むすべてのレコードを返します。
私はCOLLATE
ステートメントを追加しました:
SELECT Details
FROM MyTable
WHERE Details COLLATE Latin1_General_CS_AS LIKE '%[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]%';
これは何も変わりません。大文字と小文字を区別せずに、6文字以上の単語を含むレコードを返します。
テストとして、私は試しました:
SELECT Details
FROM MyTable
WHERE Details COLLATE Latin1_General_CS_AS LIKE '%pending%';
SELECT Details
FROM MyTable
WHERE Details COLLATE Latin1_General_CS_AS LIKE '%PENDING%';
これらは両方とも機能し、それぞれ「pending」と「PENDING」を含むレコードを返しました。したがって、問題はLIKE
節のパターンマッチングにあるようです。
この大文字と小文字を区別する検索を実行するにはどうすればよいですか?