Freigeben über


Kombinieren von Bedingungen, wenn OR Vorrang hat (Visual Database Tools)

Gilt für:SQL Server-

Wenn Sie Bedingungen mit OR bedingungen verknüpfen und ihnen Vorrang vor Bedingungen geben möchten, die mit ANDdiesen verknüpft sind, müssen Sie die AND Bedingung für jede OR Bedingung wiederholen.

Stellen Sie sich beispielsweise vor, dass Sie alle Mitarbeiter finden möchten, die seit mehr als fünf Jahren im Unternehmen tätig sind und untergeordnete Positionen innehaben oder im Ruhestand sind. Diese Abfrage erfordert drei Bedingungen, eine einzelne Bedingung, die mit zwei zusätzlichen Bedingungen verknüpft ist:AND

  • Mitarbeiter mit einem Einstellungsdatum vor mehr als fünf Jahren und

  • Mitarbeiter, die eine Stellenstufe von 100 haben oder deren Status "R" (im Ruhestand) ist.

Das folgende Verfahren veranschaulicht, wie Sie diesen Abfragetyp im Kriterienbereich erstellen.

Kombinieren von Bedingungen, wenn OR Vorrang hat

  1. Fügen Sie im Kriterienbereich (Visuelle Datenbanktools) die Datenspalten hinzu, die Sie durchsuchen möchten. Wenn Sie dieselbe Spalte mit zwei oder mehr Bedingungen durchsuchen möchten, die mit ANDverknüpft sind, müssen Sie den Datenspaltennamen einmal für jeden Wert hinzufügen, den Sie durchsuchen möchten.

  2. Erstellen Sie die Bedingungen, mit OR denen sie verknüpft werden sollen, indem Sie die erste spalte in die Spalte "Filterraster " und die zweite (und nachfolgende) in separate Or... -Spalten eingeben. Wenn Sie z. B. Bedingungen mit OR dieser Suche und status spalten job_lvl verknüpfen möchten, geben Sie = 100 in die Spalte "Filter" für job_lvl und = 'R' in die Spalte "Or..." einstatus.

    Wenn Sie diese Werte in das Raster eingeben, wird die folgende WHERE Klausel in der Anweisung im SQL-Bereich erzeugt:

    WHERE (job_lvl = 100) OR (status = 'R')
    
  3. Erstellen Sie die AND Bedingung, indem Sie sie einmal für jede OR Bedingung eingeben. Platzieren Sie jeden Eintrag in derselben Rasterspalte wie die Bedingung, der OR sie entspricht. Wenn Sie beispielsweise eine AND Bedingung hinzufügen möchten, die die hire_date Spalte durchsucht und für beide OR Bedingungen gilt, geben Sie < '1/1/91' sowohl in der Spalte "Kriterien" als auch in der Spalte "Or" ein.

    Wenn Sie diese Werte in das Raster eingeben, wird die folgende WHERE Klausel in der Anweisung im SQL-Bereich erzeugt:

    WHERE (job_lvl = 100) AND
      (hire_date < '01/01/91') OR
      (status = 'R') AND
      (hire_date < '01/01/91')
    

    Trinkgeld

    Sie können eine AND Bedingung wiederholen, indem Sie sie einmal hinzufügen und dann die Befehle "Ausschneiden " und " Einfügen " aus dem Menü "Bearbeiten " verwenden, um sie für andere OR Bedingungen zu wiederholen.

Die WHERE vom Abfrage- und Ansichts-Designer erstellte Klausel entspricht der folgenden WHERE Klausel, die Klammern verwendet, um die Rangfolge von OR Over ANDanzugeben:

WHERE (job_lvl = 100 OR status = 'R') AND
   (hire_date < '01/01/91')

Anmerkung

Wenn Sie die Suchbedingungen in das format eingeben, das unmittelbar oben im SQL-Bereich (Visual Database Tools) angezeigt wird, aber dann eine Änderung an der Abfrage im Diagramm- oder Kriterienbereich vornehmen, erstellt der Abfrage- und Ansichts-Designer die SQL-Anweisung neu, um dem Formular mit der AND Bedingung zu entsprechen, die explizit an beide OR Bedingungen verteilt wurde.