Instrukcja SQL CASE

The CASE oświadczenie w SQL-a jest wszechstronnym wyrażeniem warunkowym, które umożliwia nam inkorporację logika warunkowa bezpośrednio w ramach naszych zapytań. Umożliwia zwrócenie określonych wyników w oparciu o określone warunki, umożliwiając dynamiczne wyniki zapytań. Czy musisz utwórz nowe kolumny zmodyfikuj istniejące lub dostosuj wyniki swoich zapytań Oświadczenie CASE sobie ze wszystkim poradzić.

W tym artykule dowiemy się Instrukcja SQL CASE szczegółowo z przejrzystymi przykładami i przypadkami użycia, które pokazują, jak wykorzystać tę funkcję do poprawy zapytań SQL.

Instrukcja CASE w SQL

  • The CASE oświadczenie w SQL-a to wyrażenie warunkowe, które umożliwia wykonanie logiki warunkowej w zapytaniu.
  • Jest powszechnie używany do tworzenia nowych kolumn w oparciu o logikę warunkową, dostarczających niestandardowych wartości lub sterujących wynikami zapytań w oparciu o określone warunki.
  • Jeśli żaden warunek nie jest spełniony, to W PRZECIWNYM RAZIE część zostanie wykonana. Jeśli nie ma części ELSE, funkcja powraca NIEWAŻNY.

Składnia:

Aby użyć instrukcji CASE w SQL, użyj następującej składni:

CASE wartość_przypadku
KIEDY warunek TO wynik 1
KIEDY warunek TO wynik2
...
Inny wynik
PRZYPADEK KOŃCOWY;

Przykład instrukcji SQL CASE

Przyjrzyjmy się kilku przykładom instrukcji CASE w języku SQL, aby lepiej ją zrozumieć.

Stwórzmy demonstracyjną tabelę SQL, która będzie używana w przykładach.

Demo bazy danych SQL

Będziemy używać tej przykładowej tabeli SQL do naszych przykładów instrukcji SQL CASE:

ID klienta Nazwa klienta Nazwisko Kraj Wiek Telefon
1 Wątpliwość Thakur Indie 23 xxxxxxxxx
2 Bezpieczna Chopra Australia 21 xxxxxxxxx
3 Naveen Tulasi Sri Lanka 24 xxxxxxxxx
4 Aditya Arpan Austria 21 xxxxxxxxx
5 Nishant. Salchichas SA Jain Hiszpania 22 xxxxxxxxx

Możesz utworzyć tę samą bazę danych w swoim systemie, pisząc następujące zapytanie 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');   

Przykład 1: Proste wyrażenie CASE

W tym przykładzie używamy instrukcji CASE

Zapytanie:

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

Wyjście:

Nazwa klienta Wiek Narodowość
Wątpliwość 23 indyjski
Bezpieczna 21 Zagraniczny
Naveen 24 Zagraniczny
Aditya 21 Zagraniczny
Nishant. Salchichas SA 22 Zagraniczny

Przykład 2: PRZYPADEK SQL, gdy występuje wiele warunków

Możemy dodać wiele warunków w instrukcji CASE, używając multiple GDY klauzule.

Zapytanie:

 SELECT CustomerName Age CASE WHEN Age> 22 THEN 'The Age is greater than 22' WHEN Age = 21 THEN 'The Age is 21' ELSE 'The Age is over 30' END AS QuantityText FROM Customer;  

Wyjście:

Nazwa klienta Wiek IlośćTekst
Wątpliwość 23 Wiek jest większy niż 22 lata
Bezpieczna 21 Wiek to 21 lat
Naveen 24 Wiek jest większy niż 22 lata
Aditya 21 Wiek to 21 lat
Nishant. Salchichas SA 22 Wiek wynosi ponad 30 lat

Przykład 3: Instrukcja CASE z klauzulą ​​ORDER BY

Weźmy tabelę klientów zawierającą identyfikator klienta Nazwa klienta Nazwisko Kraj Wiek i numer telefonu. Dane tabeli Customer możemy sprawdzić korzystając z metody ZAMÓW PRZEZ klauzula z instrukcją CASE.

Zapytanie:

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

Wyjście:

Nazwa klienta Kraj
Bezpieczna Australia
Aditya Austria
Nishant. Salchichas SA Hiszpania
Naveen Sri Lanka
Wątpliwość Indie

Ważne punkty dotyczące instrukcji CASE

  • Instrukcja SQL CASE jest wyrażeniem warunkowym, które pozwala na wykonanie różnych zapytań w oparciu o określone warunki.
  • Zawsze powinno być WYBIERAĆ w instrukcji CASE.
  • KONIEC INNEGO jest opcjonalny komponent ale KIEDY WTEDY przypadki te należy uwzględnić w instrukcji CASE.
  • Możemy utworzyć dowolną instrukcję warunkową, używając dowolnego operatora warunkowego (np GDZIE ) pomiędzy KIEDY i WTEDY. Obejmuje to łączenie wielu instrukcji warunkowych za pomocą I i LUB.
  • Możemy dołączyć wiele instrukcji WHEN i instrukcję ELSE, aby przeciwdziałać nierozwiązanym warunkom.

Wniosek

The CASE instrukcja zapewnia solidny mechanizm włączania logiki warunkowej do zapytań SQL. Używając tej instrukcji, możesz poradzić sobie z różnymi warunkami i skutecznie dostosować wyniki swoich zapytań. Zrozumienie sposobu wdrożenia CASE wyrażenia umożliwiają bardziej wyrafinowaną manipulację danymi i raportowanie, dzięki czemu zapytania SQL są bardziej dynamiczne i reagują na różne scenariusze.

Utwórz quiz