Wie die SQL-CASE-Ausdruck mit Suchbedingungen verwenden

Eine leistungsstarke Möglichkeit, die SQL verwenden FALL

Menu

Ausdruck ist eine Tabelle für die Zeilen, in denen eine angegebene Suchbedingung wahr ist zu suchen. Wenn du benutzt FALL Auf diese Weise verwendet der Ausdruck die folgende Syntax:

CASEWHEN condition1 DANN Bedingung2 result1WHEN DANN result2 ... WENN Bedingungn DANN führennELSE ErgebnisxENDE

FALL prüft die erste qualifizierte Zeile (Die erste Zeile, die die Bedingungen des umschließenden erfüllt WOHER Klausel, falls vorhanden), um zu sehen, ob condition1 ist wahr. Wenn es ist, die FALL Ausdruck erhält einen Wert von result1.

Ob condition1 ist nicht wahr, FALL wertet die Zeile condition2. Ob condition2 Wahr ist, die FALL Ausdruck erhält den Wert von result2, und so weiter. Falls keine der genannten Bedingungen erfüllt sind, die FALL Ausdruck erhält den Wert von resultx.

Das SONST Klausel ist optional. Wenn der Ausdruck hat keine SONST Klausel und keine der angegebenen Bedingungen erfüllt sind, erhält der Ausdruck einen Nullwert. Nach der SQL-Anweisung enthält, die FALL Ausdruck bezieht sich auf die erste qualifizierte Zeile in einer Tabelle und nimmt die entsprechende Aktion, es verarbeitet die nächste Zeile. Diese Sequenz wird fortgesetzt, bis die SQL-Anweisung beendet die gesamte Tabelle zu verarbeiten.

Update-Werte auf der Grundlage einer Bedingung

Da kann man ein einbetten FALL Ausdruck in einer SQL-Anweisung fast überall ein Wert ist möglich, dieser Ausdruck gibt Ihnen eine enorme Flexibilität. Sie können verwenden FALL innerhalb eines AKTUALISIEREN Aussage zum Beispiel auf Werte Änderungen an Tabelle - basierend auf bestimmten Bedingungen. Betrachten Sie das folgende Beispiel:

UPDATE FOODSSET RATING = CASEWHEN FAT lt; 1Und "sehr geringer fat'WHEN FAT lt; 5THEN 'low fat'WHEN FAT lt; 20THEN 'moderate fat'WHEN FAT lt; 50THEN 'high fat'ELSE' Herzinfarkt city'END -

Diese Aussage wertet die WANN Bedingungen, bis der erste Wert True, um zurückgegeben, wonach ignoriert die Anweisung, um den Rest der Bedingungen.

Eine Datenbanktabelle, die der Fettgehalt von 100 Gramm bestimmter Lebensmittel zeigt kann ein enthalten BEWERTUNG Spalte, die eine schnelle Beurteilung der Fettgehalt der Bedeutung gibt. Wenn Sie die vorhergehenden laufen AKTUALISIEREN auf der FOODS Tabelle weist die Aussage Spargel einen Wert von sehr geringen Fett, gibt Huhn einen Wert von Niedriger Fettgehalt, und legt gerösteten Mandeln in der Herzinfarkt Stadt Kategorie.

Vermeiden Sie Bedingungen, die zu Fehlern führen

Eine weitere wertvolle Verwendung von FALL ist Ausnahme Vermeidung - Prüfen auf Bedingungen, die Fehler verursachen.

Betrachten wir einen Fall, der Ausgleich für Verkäufer bestimmt. Unternehmen, die ihre Verkäufer oft durch gerade Provision kompensieren zahlen, um ihre neuen Mitarbeiter, indem sie ihnen ein zeichnen gegen die künftigen Kommissionen sie verdienen erwartet. Im folgenden Beispiel, erhalten neue Verkäufer ein Unentschieden gegen Inbetrieb- die Auslosung Phased wird aus allmählich ihre Provisionen steigen:

UPDATE SALES_COMPSET COMP = KOMMISSION + CASEWHEN KOMMISSION> DRAWTHEN 0Wenn KOMMISSION lt; DRAWTHEN DRAWEND -

Wenn die Provision des Verkäufers Null ist, vermeidet die Struktur in diesem Beispiel eine Division durch Null-Operation, die einen Fehler verursachen würde, wenn erlaubt zu passieren. Wenn der Verkäufer eine von Null verschiedene Auftrag hat, ist die Gesamtvergütung der Kommission sowie ein Unentschieden, die im Verhältnis zu der Größe der Kommission reduziert wird.

Alle der DANN Ausdrücke in a FALL Ausdruck muss vom gleichen Typ sein - alle numerisch, alle Zeichen oder alle Datum. Das Ergebnis der FALL wird ebenfalls die Expression desselben Typs.

Menü