ホームページ > データベース > mysql チュートリアル > SQL Server で条件付き WHERE 句を実装して、パラメーターに基づいてデータをフィルターするにはどうすればよいですか?

SQL Server で条件付き WHERE 句を実装して、パラメーターに基づいてデータをフィルターするにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-18 11:11:12
オリジナル
280 人が閲覧しました

How Can I Implement a Conditional WHERE Clause in SQL Server to Filter Data Based on a Parameter?

SQL Server の条件付き WHERE 句

SQL Server では、条件付き WHERE 句を使用して、特定の条件に基づいてさまざまなフィルター条件を指定できます。これは、パラメータまたは変数の値に基づいてクエリ結果からデータを含めたり除外したりする必要がある場合に便利です。

次のシナリオを考えてみましょう:

次の基準に基づいて、[MM] という名前のテーブルからデータを取得したいとします:

  • @JobsOnHold パラメーターが 1 に設定されている場合、DateAppr 列が 0 以上のレコードが含まれます。
  • @JobsOnHold パラメーターが 1 に設定されていない場合は、DateAppr 列が 0 に等しくないレコードを含めます。

最初に使用しようとした CASE ステートメントは、この場合は機能しません。代わりに、次の条件付き 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 (デフォルト) に設定されます。
  • AND 演算子の条件式は、@JobsOnHold パラメーターの値に基づいてフィルターを適用します。

条件付き WHERE 句を使用すると、動的 SQL や if-else ステートメントを含む回避策を使用することなく、より柔軟で動的 SQL クエリを作成できます。条件付き WHERE 句の詳細については、提供された回答にリンクされているドキュメントを参照してください。

以上がSQL Server で条件付き WHERE 句を実装して、パラメーターに基づいてデータをフィルターするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート