ホームページ >データベース >mysql チュートリアル >動的 SQL を使用せずに SQL Server で条件付き WHERE 句を実装するにはどうすればよいですか?

動的 SQL を使用せずに SQL Server で条件付き WHERE 句を実装するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-18 11:06:09714ブラウズ

How to Implement a Conditional WHERE Clause in SQL Server Without Dynamic SQL?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。