ここで、WHERE句内でCASE式を使用することについて読みました:
http://scottelkin.com/sql/using-a-case-statement-in-a-sql-where-clause/
これを使用して、ユーザーのアプリケーションによって渡される契約番号に基づいて、select ステートメントから結果をフィルター処理しようとしています。私のコードは現在、渡されたものに関係なく「無効なパラメーター」のエラーをスローします。CASE 式のない WHERE 句のように、SELECT/FROM が正常に機能していることを確認しました。これが私のコードです。
WHERE (CASE WHEN @ContractNo = 0 THEN @ContractNo ELSE @ContractNo END =
tblContracts.ContractNo)
コードの冗長性はトラブルシューティングの目的であり、後で CASE でワイルドカード フィルタリングを使用する予定です。私は今、構文を理解することに集中しています。これにより、パラメーターがテーブルに格納されている契約番号と一致するすべてのレコードが返されるはずです。ヘルプやアドバイスをいただければ幸いです。