これはquestion also has the answerですが、特にDB2について言及しています。T-SQLでパーセント記号をエスケープするにはどうすればよいですか?
文字列を検索するには、既にパーセント記号(%)が入っているLIKE
を使用しますか? LIKE
オペレータは、%
シンボルを使用してワイルドカードを表します。
これはquestion also has the answerですが、特にDB2について言及しています。T-SQLでパーセント記号をエスケープするにはどうすればよいですか?
文字列を検索するには、既にパーセント記号(%)が入っているLIKE
を使用しますか? LIKE
オペレータは、%
シンボルを使用してワイルドカードを表します。
使用ブラケット。だから、これはESCAPEよりも簡単かつ最もRDBMS
LIKE
とESCAPE
というキーワードを使用できます。文字列内の既存の%
記号のそれぞれに目的の文字(「!」など)を付加してから、ESCAPE '!'
(または選択した文字)をクエリの末尾に追加します。例えば
:
SELECT *
FROM prices
WHERE discount LIKE '%80!% off%'
ESCAPE '!'
これは、データベースの検索ではなく80(ワイルドカード)にある文字列の実際の一環として、80%を扱うようになります。
WHERE column_name LIKE '%save 50[%] off!%'
に共通している75%のため
を見ても、など、あなたが、そのようなユーザー関数などの他の構成要素に連結をパーセント記号をエスケープする必要はありません –
[カーディナリティの見積もり(と実行計画も)をより良くすることができます](http://stackoverflow.com/a/18696341/73226) –
また、アンダースコアのワイルドカード文字もエスケープできます: '[_]'。あなたはどのように開いた角括弧を逃れていますか?このように: '[[]'。 http://www.sqlserver2000.databases.aspfaq.com/how-do-i-search-for-special-characters-e-g-in-sql-server.html –