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
CASEoś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.