SQL Server 2008 の列内のすべての特殊文字を検索する 質問する

SQL Server 2008 の列内のすべての特殊文字を検索する 質問する

の列内のすべての特殊文字の出現を検出する必要がありますSQL Server 2008。したがって、 は気にしませんが、などA, B, C ... 8, 9, 0は気にします。!, @, &,

私の考えでは、これを行う最も簡単な方法は を除外することですA, B, C, ... 8, 9, 0が、それらを除外するステートメントを記述すると、 および を含むエントリが見逃されてしまいます。したがって、アルファベット!と数字以外のすべての文字のリストを取得し、および修飾子を使用してAを実行する必要があると思われます。SELECTLIKEWildcard

私が実行するのは以下のとおりです:

SELECT Col1
FROM TABLE
WHERE Col1 LIKE ('!', '@', '#', '$', '%'....)

しかし、複数の予選を実行することはできないと思います。これを実現する方法はありますか?

ベストアンサー1

ここではネガティブなものが味方になります:

SELECT Col1
FROM TABLE
WHERE Col1 like '%[^a-Z0-9]%'

Col1これは、任意の数の文字で構成される行を1文字だけ必要とすることを意味しますないa-Z0-9 のセットの後に任意の数の文字が続きます。

大文字と小文字を区別する照合順序を使用する場合は、大文字と小文字の両方を含む範囲を使用することが重要です。Aこれは私が指定したものです (最初は逆でした。 がの前に来て、が の後に来ます)aZzaAZz


あるいは、別の言い方をすれば、元の文章を次WHEREのように書くこともできます。

Col1 LIKE '%[!@#$%]%'

しかし、あなたが観察したように、あなたは知っておく必要があるでしょう全てに含める文字[]

おすすめ記事