Wie zu logischen Verknüpfungen mit SQL verwenden

Oft eine Bedingung in einer Abfrage die Anwendung ist nicht genug, um die Zeilen, die Sie aus einer SQL-Tabelle zurückgeben soll. In einigen Fällen müssen die Reihen genügen zwei oder mehr Bedingungen. In anderen Fällen, wenn eine Zeile jede von zwei oder mehr Bedingungen erfüllt, qualifiziert sie sich für den Abruf.

Menu

Auf noch andere Gelegenheiten, möchten Sie nur die Zeilen abzurufen, die eine bestimmte Bedingung nicht erfüllen. Um diesen Anforderungen gerecht zu werden, bietet SQL die logischen Verknüpfungen UND, ODER, und NICHT.

UND

Wenn mehrere Bedingungen alle erfüllt sein müssen, bevor Sie eine Zeile abrufen können, verwenden Sie die UND logische Verknüpfung. Betrachten Sie das folgende Beispiel:

SELECT InvoiceNo, Verkaufsdatum, Verkäufer, TotalSaleFROM SALESWHERE Saledate> = '2012-12-14'AND SaleDatelt; =' 2012-12-20 '-

Das WOHER Klausel müssen die beiden folgenden Bedingungen erfüllen:

  • Verkaufsdatum muss größer als oder gleich 14 Dezember 2012.

  • Verkaufsdatum muss kleiner als oder gleich 20. Dezember 2012.

Nur Zeilen, die beide Bedingungen erfüllen, einen Rekordumsatz vom 14. Dezember während der Woche auftreten. Die Abfrage gibt nur diese Zeilen.

Beachten Sie, dass die UND Binde- ist streng logisch. Diese Einschränkung kann manchmal verwirrend sein, weil die Menschen häufig das Wort und mit lockerer Bedeutung. Nehmen wir zum Beispiel, dass Ihr Chef sagt Ihnen, # 147-Id wie die Verkaufsdaten für Ferguson und Ford abzurufen. # 148- Er sagte: # 147-Ferguson und Ford, # 148- so können Sie die folgende SQL-Abfrage schreiben:

SELECT * FROM SALESWHERE Verkäufer = 'Ferguson'AND Verkäufer =' Ford'-

Nun, nehmen Sie nicht die Antwort zurück zu Ihrem Chef. Die folgende Abfrage ist mehr wie, was die große Kahuna im Sinn hatte:

SELECT * FROM SALESWHERE Verkäufer IN ( 'Ferguson', 'Ford') -

Die erste Abfrage wird nichts zurück, weil keiner der Umsatz in der Tabelle SALES durch gemacht wurden beide Ferguson und Ford. Die zweite Abfrage wird wieder die Informationen über alle Verkäufe von entweder Ferguson oder Ford, die wahrscheinlich ist, was der Chef wollte.

ODER

Wenn einer von zwei oder mehr Bedingungen müssen erfüllt sein, um eine Reihe für den Abruf zu qualifizieren, benutzen Sie die ODER logische Verknüpfung, wie im folgenden Beispiel:

SELECT InvoiceNo, Verkaufsdatum, Handelsvertreter, TotalSaleFROM SALESWHERE Verkäufer = 'Ford'OR TotalSale> 200 -

Diese Abfrage ruft alle Ford-Verkäufe, und zwar unabhängig davon, wie groß, wie auch alle einen Umsatz von mehr als $ 200 ist, und zwar unabhängig davon, wer die Verkäufe.

NICHT

Das NICHT Binde- negiert eine Bedingung. Wenn die Bedingung normalerweise einen wahren Wert zurückgibt, das Hinzufügen NICHT bewirkt, dass die gleiche Bedingung den Wert falsch zurück. Wenn eine Bedingung normalerweise einen falschen Wert zurückgibt, das Hinzufügen NICHT bewirkt, dass die Bedingung den Wert wahr zurück. Betrachten Sie das folgende Beispiel:

SELECT InvoiceNo, Verkaufsdatum, Verkäufer, TotalSaleFROM SALESWHERE NOT (Verkäufer = 'Ford') -

Diese Abfrage liefert Zeilen für alle Verkäufe von Verkäufern andere als Ford abgeschlossene Transaktionen.

Wenn Sie UND, ODER, oder NICHT, manchmal der Umfang der Binde ist nicht klar. Um sicher zu gehen, verwenden Sie Klammern, um sicherzustellen, dass SQL die Binde mit dem Prädikat gilt Sie wollen. In dem vorhergehenden Beispiel die NICHT Binde- gilt für das gesamte Prädikat (Verkäufer = 'Ford').

Menü