logo

SQL CASE-Anweisung

SQL CASE-Anweisung ist ein bedingter Ausdruck, der es Benutzern ermöglicht, verschiedene Aktionen basierend auf unterschiedlichen Bedingungen auszuführen. Sie ähnelt der if-else-Logik in anderen Programmiersprachen.

Kern Java

CASE-Anweisung in SQL

Der CASE-Ausdruck in SQL durchläuft alle Bedingungen und stoppt, wenn eine Bedingung erfüllt ist. Es wird nicht nach anderen Bedingungen gesucht, nachdem eine Bedingung „true“ zurückgegeben hat, und es werden Ergebnisse basierend auf dieser Bedingung zurückgegeben.

Wenn keine Bedingung wahr ist, wird der ELSE-Teil ausgeführt. Wenn kein ELSE-Teil vorhanden ist, wird zurückgegeben NULL.



Syntax

Um die CASE-Anweisung in SQL zu verwenden, verwenden Sie die folgende Syntax:

FALL case_value
WANN Zustand DANN Ergebnis1
WANN Zustand DANN Ergebnis2

Anders Ergebnis
ENDE FALL;

SQL CASE-Beispiel

Schauen wir uns einige Beispiele der CASE-Anweisung in SQL an, um sie besser zu verstehen.

Lassen Sie uns eine Demo-SQL-Tabelle erstellen, die in Beispielen verwendet wird.

Zeichenfolge vergleichen mit

Demo-SQL-Datenbank

Wir werden diese Beispiel-SQL-Tabelle für unsere Beispiele zur SQL-CASE-Anweisung verwenden:

KundennummerKundennameFamilienname, NachnameLandAlterTelefon
1ZweifelnThakurIndien23xxxxxxxxxx
2SicherChopraAustralieneinundzwanzigxxxxxxxxxx
3NaveenTulasiSri Lanka24xxxxxxxxxx
4AdityaArpanÖsterreicheinundzwanzigxxxxxxxxxx
5Nishant. Würstchen S.A.JainSpanien22xxxxxxxxxx

Sie können dieselbe Datenbank in Ihrem System erstellen, indem Sie die folgende MySQL-Abfrage schreiben:

MySQL
CREATE TABLE Customer(  CustomerID INT PRIMARY KEY,  CustomerName VARCHAR(50),  LastName VARCHAR(50),  Country VARCHAR(50),  Age int(2),  Phone int(10) ); -- Insert some sample data into the Customers table INSERT INTO Customer (CustomerID, CustomerName, LastName, Country, Age, Phone) VALUES (1, 'Shubham', 'Thakur', 'India','23','xxxxxxxxxx'),  (2, 'Aman ', 'Chopra', 'Australia','21','xxxxxxxxxx'),  (3, 'Naveen', 'Tulasi', 'Sri lanka','24','xxxxxxxxxx'),  (4, 'Aditya', 'Arpan', 'Austria','21','xxxxxxxxxx'),  (5, 'Nishant. Salchichas S.A.', 'Jain', 'Spain','22','xxxxxxxxxx');>

Beispiel für einen CASE-Ausdruck

In diesem Beispiel verwenden wir die CASE-Anweisung

Abfrage:

  SELECT   CustomerName, Age  ,    CASE   WHEN Country = 'India' THEN 'Indian'  ELSE 'Foreign' END AS Nationality FROM Customer;>

Beispiel für SQL-FALL bei mehreren Bedingungen

Wir können der CASE-Anweisung mehrere Bedingungen hinzufügen, indem wir multiple verwenden WANN Klauseln.

Abfrage:

  SELECT   CustomerName, Age,   CASE     WHEN   Age>22 THEN 'Das Alter ist größer als 22' WHEN Age = 21 THEN 'Das Alter ist 21' ELSE 'Das Alter ist über 30' END AS QuantityText FROM Customer;>

Ausgabe:

Winterschlaf-Dialekt
Hinzufügen mehrerer Bedingungen zu einer Beispielausgabe einer Case-Anweisung

Ausgabe

Beispiel für eine CASE-Anweisung mit einer ORDER BY-Klausel

Nehmen wir die Kundentabelle, die CustomerID, CustomerName, LastName, Country, Age und Phone enthält. Wir können die Daten der Kundentabelle überprüfen, indem wir die verwenden SORTIEREN NACH -Klausel mit der CASE-Anweisung.

Abfrage:

  SELECT   CustomerName, Country   FROM   Customer   ORDER BY  (  CASE     WHEN   Country IS 'India'   THEN   Country    ELSE   Age   END  );>

Ausgabe:

case-Anweisung mit Beispielausgabe der order by-Klausel

CASE-Anweisung mit Beispielausgabe der ORDER BY-Klausel

Wichtige Punkte zur CASE-Anweisung

  • Die SQL CASE-Anweisung ist ein bedingter Ausdruck, der die Ausführung verschiedener Abfragen basierend auf angegebenen Bedingungen ermöglicht.
  • Es sollte immer eine geben WÄHLEN in der CASE-Anweisung.
  • END ELSE ist eine optionale Komponente, aber WANN DANN diese Fälle müssen in der CASE-Anweisung enthalten sein.
  • Wir können jede bedingte Anweisung mit jedem bedingten Operator (z. B WO ) zwischen WANN und DANN. Dazu gehört die Aneinanderreihung mehrerer bedingter Anweisungen mithilfe von AND und OR.
  • Wir können mehrere WHEN-Anweisungen und eine ELSE-Anweisung einschließen, um nicht adressierten Bedingungen entgegenzuwirken.