ストアド プロシージャには 3 つの入力パラメータがあります。例えば、
DECLARE @fromDate DateTime = NULL
DECLARE @toDate DateTime = NULL
DECLARE @Id int = NULL
where 句に次のような条件を記述したい... fromDate が指定されている場合は、@fromDate で検索する必要があります。@fromDate が提供されていない場合は、@Id 変数をチェックします。これが null でない場合は、@Id に基づいて検索します...
何かのようなもの...
where
CASE
when @fromDate is not null
THEN (@FromDate is null or ([Created] between @FromDate and @ToDate))
ELSE (@requestId is null or Id=@requestId)
以下の解決策には1つの問題があります... @fromDate と @Id の両方が提供されている場合、これはそれらのインテセクトを実行し、何も返されません...条件は次のようになります... @fromDate が与えられた場合、優先度が与えられます@Id が提供され、結果が @Id パラメータに依存してはならない場合でも、@fromDate に....