質問:
SQL Server で条件付き WHERE 句を作成する方法、特にパラメータ値に基づいて条件が変化する場合はどうすればよいですか?
答え:
条件付き WHERE 句を作成するには、条件を満たすレコードの場合は TRUE、条件を満たさないレコードの場合は FALSE と評価される式を 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>
このクエリでは、WHERE 句に次の条件が含まれています:
<code class="language-sql">(ISNULL(@JobsOnHold, 0) = 1 AND DateAppr >= 0) OR (ISNULL(@JobsOnHold, 0) != 1 AND DateAppr != 0)</code>
この条件式は、以下を満たすレコードに対して TRUE と評価されます。
この条件式を使用すると、@JobsOnHold パラメーターの値に基づいて、クエリにさまざまな条件を動的に適用できます。これにより、データをフィルタリングする際の柔軟性と制御が向上します。
以上がSQL Server のパラメータに基づいて条件付き WHERE 句を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。