の列内のすべての特殊文字の出現を検出する必要がありますSQL Server 2008
。したがって、 は気にしませんが、などA, B, C ... 8, 9, 0
は気にします。!, @, &,
私の考えでは、これを行う最も簡単な方法は を除外することですA, B, C, ... 8, 9, 0
が、それらを除外するステートメントを記述すると、 および を含むエントリが見逃されてしまいます。したがって、アルファベット!
と数字以外のすべての文字のリストを取得し、および修飾子を使用してA
を実行する必要があると思われます。SELECT
LIKE
Wildcard
私が実行するのは以下のとおりです:
SELECT Col1
FROM TABLE
WHERE Col1 LIKE ('!', '@', '#', '$', '%'....)
しかし、複数の予選を実行することはできないと思います。これを実現する方法はありますか?
ベストアンサー1
ここではネガティブなものが味方になります:
SELECT Col1
FROM TABLE
WHERE Col1 like '%[^a-Z0-9]%'
Col1
これは、任意の数の文字で構成される行を1文字だけ必要とすることを意味しますないa-Z0-9 のセットの後に任意の数の文字が続きます。
大文字と小文字を区別する照合順序を使用する場合は、大文字と小文字の両方を含む範囲を使用することが重要です。A
これは私が指定したものです (最初は逆でした。 がの前に来て、が の後に来ます)a
Z
z
a
A
Z
z
あるいは、別の言い方をすれば、元の文章を次WHERE
のように書くこともできます。
Col1 LIKE '%[!@#$%]%'
しかし、あなたが観察したように、あなたは知っておく必要があるでしょう全てに含める文字[]
。