T-SQLでパーセント記号をエスケープするにはどうすればよいですか?


188

この質問にも答えがありますが、特にDB2について言及しています。

すでにパーセント記号が含まれている文字列を検索するにはどうすればよいですか?オペレータは、使用するワイルドカードを意味する記号を。LIKE%LIKE%

回答:


285

ブラケットを使用します。75%を探します

WHERE MyCol LIKE '%75[%]%'

これはESCAPEよりも簡単で、ほとんどのRDBMSに共通です。


2
またなど、連結、あなたは、このようなユーザー機能など、他の構築物中のパーセント記号をエスケープする必要はありません
ブロンデイヴィス


2
アンダースコアのワイルドカード文字もエスケープできます[_]。次に、開いた角括弧をどのようにエスケープしますか?このように:[[]sqlserver2000.databases.aspfaq.com/...
チャバ・トス

ESCAPE句の使用は、MSの脳に損傷を与えた引用メカニズムよりも理解しやすいです。
Suncat2000 2018

52

ESCAPEキーワードはで使用できますLIKE%文字列内の既存の各記号の前に目的の文字(たとえば、「!」)を追加しESCAPE '!'、クエリの最後に(または選択した文字)を追加するだけです。

例えば:

SELECT *
FROM prices
WHERE discount LIKE '%80!% off%'
ESCAPE '!'

これにより、データベースは80%を80(ワイルドカード)ではなく、検索する文字列の実際の部分として扱います。

MSDNドキュメント LIKE



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.