ホームページ » の仕方 » SQL Serverで特殊文字を含む行を検索する

    SQL Serverで特殊文字を含む行を検索する

    今日のプログラミング問題のトラブルシューティング中に、特別な構文を使用せずに、%や_などの特殊文字を含む文字列列のLIKE検索を使用できないことに気付きました。問題の解明には数分しかかかりませんでしたが、構文を覚えておくと、それについて書いた方がずっと簡単です。.

    そう、この記事は私の利益のためだけにあります。うまくいけば、それは他の人にも役立つでしょう.

    「100%」というテキストを含むフィールドを見つけたいとします。そのため、次のクエリをまとめます。

    SELECT * FROMテーブル名WHEREフィールド名LIKE '%100 %%'

    必要なものではなく、「100」を含むすべての行と「100%」を含むすべての行が表示されます。.

    ここでの問題は、SQL Serverがパーセント記号、アンダースコア、および角かっこを特殊文字として使用することです。エスケープせずにLIKEクエリでプレーン文字として使用することはできません。.

    角かっこエスケープ

    SQL Serverに、内部の文字が通常の文字であることを伝えるために、%または_を角かっこで囲むことができます。.

    SELECT * FROMテーブル名どこフィールド名LIKE '%100 [%]%'

    T-SQL ESCAPEの構文

    または、ESCAPE演算子をクエリに追加して、エスケープする値の前に\文字を追加することもできます。.

    SELECT * FROMテーブル名どこフィールド名LIKE '%100 \ %%' ESCAPE '\'

    クエリのESCAPE '\'部分は、\の後の文字をワイルドカードとしてではなくリテラル文字として解釈するようにSQLエンジンに指示します。.

    個人的には2番目の方法の方が扱いやすいと思います。また、角括弧をエスケープするためにも使用できます。.