2017-11-07 8 views
0

カテゴリ、年などのいくつかのフィールドを持つクイック検索をまとめています。タイトル列にcontains述語を使用する検索語のフィールドも含めるようにしています。彼らが検索用語を選択したかどうかを確認するために同じクエリを使いたいので、次のようにしましたが、@SearchTermが空の場合は常に0の結果が得られます。SQL Server Contains Predicate

AND (
@SearchTerm IS NOT NULL AND 
CONTAINS((Title), @SearchTerm) 
) 

searchtermが空の場合、searchterm containsセクションを無視する簡単な方法はありますか?

ありがとうございます!

+2

は 'のようなものに変更してみてください@SearchTermがnullであるか、含まれています(...)'。 – kirchner

+0

通常、私は動的SQL経由で値をプッシュする傾向があります。そうすれば、複数の単語、部分的な一致などをチェックする方法を扱うことができます。最も優雅なアプローチではありませんが、より多くの制御を与えます。特に、パラメータがユーザー入力フィールドから来ている場合。私はそれが役に立ったら例を投稿することができます。 –

答えて

0

私はあなたが欲しいのロジックは次のように言葉で表現OR、ないAND、だと思う:

AND (@SearchTerm IS NULL OR CONTAINS((Title), @SearchTerm)) 
+0

'@ SearchTerm'に値があるとき、これはすべての行を返すと思います。 – kirchner

+0

ここにIS NULLが必要だと思います。 NOTを削除します。 –

+0

残念ながら、検索用語がある場合は、結果セット全体が返されます。 –

関連する問題