Heim >Datenbank >MySQL-Tutorial >Wie implementiert man eine bedingte WHERE-Klausel basierend auf einem Parameter in SQL Server?

Wie implementiert man eine bedingte WHERE-Klausel basierend auf einem Parameter in SQL Server?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-18 11:02:09166Durchsuche

How to Implement a Conditional WHERE Clause Based on a Parameter in SQL Server?

Bedingte WHERE-Klausel in SQL Server

Frage:

Wie erstelle ich eine bedingte WHERE-Klausel in SQL Server, insbesondere wenn sich die Bedingung basierend auf Parameterwerten ändert?

Antwort:

Um eine bedingte WHERE-Klausel zu erstellen, können Sie einen Ausdruck in der WHERE-Klausel verwenden, der für Datensätze, die die Bedingung erfüllen, TRUE und für Datensätze, die die Bedingung nicht erfüllen, TRUE ergibt. Betrachten Sie die folgende Abfrage:

<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>

In dieser Abfrage enthält die WHERE-Klausel die folgenden Bedingungen:

<code class="language-sql">(ISNULL(@JobsOnHold, 0) = 1 AND DateAppr >= 0) 
OR 
(ISNULL(@JobsOnHold, 0) != 1 AND DateAppr != 0)</code>

Dieser bedingte Ausdruck ergibt TRUE für Datensätze, die Folgendes erfüllen:

  • Wenn @JobsOnHold gleich 1 ist, muss DateAppr größer oder gleich 0 sein.
  • Wenn @JobsOnHold nicht gleich 1 ist, darf DateAppr nicht gleich 0 sein.

Mithilfe dieses bedingten Ausdrucks können Sie basierend auf dem Wert des @JobsOnHold-Parameters dynamisch verschiedene Bedingungen auf die Abfrage anwenden. Dies ermöglicht eine größere Flexibilität und Kontrolle beim Filtern von Daten.

Das obige ist der detaillierte Inhalt vonWie implementiert man eine bedingte WHERE-Klausel basierend auf einem Parameter in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn