Instrukcja SQL CASE to wyrażenie warunkowe, które pozwala użytkownikom wykonywać różne akcje w oparciu o różne warunki. Jest podobny do logiki if-else w innych językach programowania.
Instrukcja CASE w SQL
CASE Wyrażenie w SQL przechodzi przez wszystkie warunki i zatrzymuje się, gdy dowolny warunek zostanie spełniony. Nie sprawdza innych warunków po zwróceniu przez warunek wartości true i zwraca wyniki na podstawie tego warunku.
Jeśli żaden warunek nie jest spełniony, zostanie wykonana część ELSE. Jeśli nie ma części ELSE, następuje powrót ZERO.
strsep c
Składnia
Aby użyć instrukcji CASE w języku SQL, użyj następującej składni:
SPRAWA wartość_przypadku
GDY stan NASTĘPNIE wynik1
GDY stan NASTĘPNIE wynik2
…
W przeciwnym razie wynik
KONIEC SPRAWA;
Przykład PRZYPADKU SQL
Przyjrzyjmy się kilku przykładom instrukcji CASE w języku SQL, aby lepiej ją zrozumieć.
Słownik C#
Stwórzmy demonstracyjną tabelę SQL, która będzie wykorzystana w przykładach.
Demo bazy danych SQL
Będziemy używać tej przykładowej tabeli SQL do naszych przykładów instrukcji SQL CASE:
| Identyfikator klienta | Nazwa klienta | Nazwisko | Kraj | Wiek | Telefon |
|---|---|---|---|---|---|
| 1 | Wątpliwość | Thakur | Indie | 23 | xxxxxxxxx |
| 2 | Bezpieczna | Chopra | Australia | dwadzieścia jeden | xxxxxxxxx |
| 3 | Naveen | Tulasi | Sri Lanka | 24 | xxxxxxxxx |
| 4 | Aditya | Arpan | Austria | dwadzieścia jeden | xxxxxxxxx |
| 5 | Nishant. Kiełbaski SA | Jain | Hiszpania | 22 | xxxxxxxxx |
Możesz utworzyć tę samą bazę danych w swoim systemie, pisząc następujące zapytanie MySQL:
MySQL'a 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 wyrażenia CASE
W tym przykładzie użyjemy instrukcji CASE
PowerShell z komentarzami wielowierszowymi
Zapytanie:
SELECT CustomerName, Age , CASE WHEN Country = 'India' THEN 'Indian' ELSE 'Foreign' END AS Nationality FROM Customer;>
PRZYKŁAD SQL, gdy występuje wiele warunków. Przykład
Możemy dodać wiele warunków w instrukcji CASE, używając multiple GDY klauzule.
Zapytanie:
SELECT CustomerName, Age, CASE WHEN Age>22 WTEDY 'Wiek jest większy niż 22' KIEDY Wiek = 21 WTEDY 'Wiek wynosi 21 lat' W przeciwnym razie 'Wiek przekracza 30' KONIEC JAKO QuantityText OD Klienta;>
Wyjście:
iterator Java mapy

Wyjście
Instrukcja CASE z przykładem klauzuli ORDER BY
Weźmy tabelę klientów, która zawiera identyfikator klienta, nazwę klienta, nazwisko, kraj, wiek i telefon. 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:

Instrukcja CASE z przykładowym wyjściem klauzuli ORDER BY
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ą AND i OR.
- Możemy dołączyć wiele instrukcji WHEN i instrukcję ELSE, aby przeciwdziałać nierozwiązanym warunkom.