PostgreSQL CASE

Zusammenfassung: In diesem Tutorial erfahren Sie, wie Sie den bedingten Ausdruck PostgreSQL CASE verwenden, um bedingte Abfragen zu bilden.

Der Ausdruck PostgreSQL CASE ist der gleiche wie die Anweisung IF/ELSE in anderen Programmiersprachen. Sie können der Abfrage if-Else-Logik hinzufügen, um eine leistungsstarke Abfrage zu erstellen.

Da CASE ein Ausdruck ist, können Sie ihn an allen Stellen verwenden, an denen ein Ausdruck verwendet werden kann, z.,SELECT, WHERE, GROUP BY, und HAVING Klausel.

Der Ausdruck CASE hat zwei Formen: allgemeine und einfache Form.

1) Allgemeiner PostgreSQL-CASE-Ausdruck

Im Folgenden wird die allgemeine Form der Anweisung CASE veranschaulicht:

Code language: SQL (Structured Query Language) (sql)

In dieser Syntax wird jede Bedingung (condition_1, condition_2…) ist ein boolescher Ausdruck, der entweder true oder false zurückgibt.

Wenn eine Bedingung false ergibt, wertet der Ausdruck CASE die nächste Bedingung von oben nach unten aus, bis eine Bedingung gefunden wird, die true ergibt.

Wenn eine Bedingung true ergibt, gibt der Ausdruck CASE das entsprechende Ergebnis zurück, das der Bedingung folgt. Wenn beispielsweise condition_2 true ergibt, gibt der Ausdruck CASE result_2 zurück. Außerdem wird die Auswertung des nächsten Ausdrucks sofort beendet.

Wenn alle Bedingungen false ergeben, gibt der Ausdruck CASE das Ergebnis (else_result) zurück, das auf das Schlüsselwort ELSE folgt. Wenn Sie die Klausel ELSE weglassen, gibt der Ausdruck CASE NULL zurück.

Schauen wir uns die film -Tabelle aus der Beispieldatenbank an.

A) Ein allgemeines Fallbeispiel

Angenommen, Sie möchten die Filme nach ihrer Länge beschriften, basierend auf der folgenden Logik:

  • Wenn die Länge weniger als 50 Minuten beträgt, ist der Film kurz.
  • Wenn die Länge größer als 50 Minuten und kleiner oder gleich 120 Minuten ist, ist der Film medium.
  • Wenn die Länge größer als 120 Minuten ist, ist der Film lang.

Um diese Logik anzuwenden, können Sie den Ausdruck CASE in der Anweisung SELECT wie folgt verwenden:

Code language: PHP (php)

Ausgang:

Beachten Sie, dass wir nach dem Ausdruck CASE einen Spaltenalias duration platziert haben.

B) Anwendungsfall mit einer Aggregatfunktion Beispiel

Angenommen, Sie möchten Filmen Preissegmente mit der folgenden Logik zuweisen:

  • Wenn der Mietpreis 0,99 beträgt, ist der Film wirtschaftlich.
  • Wenn der Mietpreis 1,99 beträgt, ist der Film Masse.
  • Wenn der Mietpreis 4,99 beträgt, ist der Film Premium.

Und Sie möchten die Anzahl der Filme wissen, die zu Economy, Mass und Premium gehören.

In diesem Fall können Sie den Ausdruck CASE verwenden, um die Abfrage wie folgt zu erstellen:

Code language: SQL (Structured Query Language) (sql)

Das Ergebnis der Abfrage lautet wie folgt:

In diesem Beispiel haben wir den Ausdruck CASE verwendet, um 1 oder 0 zurückzugeben, wenn der Mietpreis in jedes Preissegment fällt. Und wir haben die Funktion SUM angewendet, um die Summe der Filme für jedes Preissegment zu berechnen.

2) Einfacher PostgreSQL-CASE-Ausdruck

PostgreSQL bietet eine andere Form des Ausdrucks CASE mit dem Namen simple form wie folgt:

Code language: SQL (Structured Query Language) (sql)

Der CASE wertet zuerst den expression aus und vergleicht das Ergebnis mit jedem Wert( value_1, value_2, …) in den WHEN -Klauseln nacheinander, bis die Übereinstimmung gefunden wird.

Sobald das Ergebnis von expression einem Wert entspricht (Wert1, Wert2 usw.) in einer WHEN -Klausel gibt CASE das entsprechende Ergebnis in der THEN -Klausel zurück.

Wenn CASE keine Übereinstimmungen findet, gibt es den else_result zurück, der auf den ELSE oder NULL Wert folgt, wenn der ELSE nicht verfügbar ist.

A) Einfaches PostgreSQL-CASE-Ausdrucksbeispiel

Die folgende Anweisung verwendet den Ausdruck CASE, um die Bewertungsbeschreibung zur Ausgabe hinzuzufügen:

Code language: PHP (php)

In diesem Beispiel haben wir einen einfachen CASE -Ausdruck verwendet, um die Bewertung aus der film -Tabelle mit einigen Literalwerten wie G, PG, NC17, PG-13 zu vergleichen und die entsprechende Bewertungsbeschreibung zurückzugeben.

B) Verwenden eines einfachen PostgreSQL-CASE-Ausdrucks mit Aggregatfunktion Beispiel

Die folgende Anweisung verwendet den Ausdruck CASE mit der Funktion SUM, um die Anzahl der Filme in jeder Bewertung zu berechnen:

Code language: PHP (php)

In diesem Tutorial haben Sie gelernt, wie Sie den Ausdruck PostgreSQL CASE verwenden, um komplexe Abfragen zu erstellen.

  • War dieses Tutorial hilfreich ?
  • JaNein

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.