SQL Server の条件付き WHERE 句
質問:
動的 SQL を使用したり、異なる句で複数のクエリを作成したりせずに、SQL Server で条件付き WHERE 句を実装するにはどうすればよいですか?
答え:
次のメソッドを使用できます:
<code class="language-sql">SELECT DateAppr, TimeAppr, TAT, LaserLTR, Permit, LtrPrinter, JobName, JobNumber, JobDesc, ActQty, (ActQty-LtrPrinted) AS L, (ActQty-QtyInserted) AS M, ((ActQty-LtrPrinted)-(ActQty-QtyInserted)) AS N FROM [test].[dbo].[MM] WHERE DateDropped = 0 AND ( (ISNULL(@JobsOnHold, 0) = 1 AND DateAppr >= 0) OR (ISNULL(@JobsOnHold, 0) <> 1 AND DateAppr <> 0) )</code>
このクエリ内:
ISNULL()
関数は、@JobsOnHold
パラメーターが空かどうかを確認し、空の場合は 0 を返します。 @JobsOnHold
パラメーターの値をチェックします。値が 1 の場合、DateAppr
列は 0 以上である必要があります。値が 1 でない場合、DateAppr
列は 0 であってはなりません。 AND
演算子は、両方の条件が満たされていることを確認します。 このアプローチでは、単一のクエリと条件付き WHERE 句を使用して、パラメータの値に基づいて結果をフィルタリングできます。これは、複数のクエリや動的 SQL を使用するよりも、そのようなクエリを作成するためのより効率的かつ簡潔な方法です。
以上が動的 SQL を使用せずに SQL Server で条件付き WHERE 句を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。