「[」は、これが機能しない理由について、Unicode文字http://en.wikipedia.org/wiki/List_of_Unicode_characters(私の推測)に分類されていません。
declare @v nvarchar(255)
set @v = '[x]825'
select 1
where @v like '[x]825'
「[」は、これが機能しない理由について、Unicode文字http://en.wikipedia.org/wiki/List_of_Unicode_characters(私の推測)に分類されていません。
declare @v nvarchar(255)
set @v = '[x]825'
select 1
where @v like '[x]825'
[]
パターンマッチの文字範囲を定義します。LIKE ステートメントでは特別な意味があります。 これがそのドキュメントです。
これらの文字を明示的に探している場合は、次のようにエスケープする必要があります。
declare @v nvarchar(255)
set @v = '[x]825'
select 1
where @v LIKE '![x]825'
ESCAPE '!'
[x] は、SQL サーバーにとって特定の意味を持ちます。括弧は非常に基本的な正規表現に使用されます。SO を探しているのは、最初の文字に文字 X が含まれている場所であり、もちろんそれは変数の最初の文字ではありません。
ワイルドカードを使用する予定がない限り、like を使用しないことをお勧めします。ワイルドカードを最初の文字にすることは、クエリでインデックスではなくテーブル スキャンを使用するようになるため、悪い習慣です。