Wyrażenie MySQL CASE jest częścią funkcji przepływu sterowania, która umożliwia nam napisanie pliku jeśli-else lub jeśli-to-else logika zapytania. Tego wyrażenia można użyć wszędzie tam, gdzie używa się prawidłowego programu lub zapytania, na przykład klauzuli SELECT, WHERE, ORDER BY itp.
Wyrażenie CASE sprawdza poprawność różnych warunków i zwraca wynik, gdy spełniony jest pierwszy warunek PRAWDA . Gdy warunek zostanie spełniony, zatrzymuje się i podaje wyjście. Jeśli żaden warunek nie zostanie znaleziony, wykonuje polecenie inaczej zablokuj . Jeśli blok else nie zostanie znaleziony, zwraca a ZERO wartość. Głównym celem MySQL'a Instrukcja CASE ma do czynienia z wieloma instrukcjami IF w klauzuli SELECT.
Instrukcji CASE możemy używać na dwa sposoby, które są następujące:
1. Proste stwierdzenie CASE:
Pierwsza metoda polega na pobraniu wartości i dopasowaniu jej do podanej instrukcji, jak pokazano poniżej.
tablica ciągów w programowaniu w języku C
Składnia
CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
Zwraca wynik, gdy pierwszy wartość_porównawcza porównanie staje się prawdziwe. W przeciwnym razie zwróci klauzulę else.
Przykład
mysql> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;
Wyjście
Po pomyślnym wykonaniu powyższego polecenia zobaczymy następujące dane wyjściowe.
2. Szukana instrukcja CASE:
Druga metoda polega na rozważeniu a warunek_wyszukiwania w GDY klauzule i jeśli je znajdzie, zwróć wynik w odpowiedniej klauzuli THEN. W przeciwnym razie zwróci klauzulę else. Jeśli klauzula else nie zostanie określona, zwróci wartość NULL.
Składnia
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
Przykład
mysql> SELECT CASE BINARY 'B' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
Wyjście
Typ zwrotu
Wyrażenie CASE zwraca wynik w zależności od kontekstu, w którym zostało użyte. Na przykład:
- Jeśli zostanie użyte w kontekście ciągu znaków, zwraca wynik w postaci ciągu znaków.
- Jeśli zostanie użyte w kontekście liczbowym, zwraca wartość całkowitą, zmiennoprzecinkową i dziesiętną.
Obsługa wersji MySQL
Instrukcja CASE może obsługiwać następujące wersje MySQL:
- MySQL8.0
- MySQL-a 5.7
- MySQL-a 5.6
- MySQL-a 5.5
- MySQL 5.1
- MySQL5.0
- MySQL 4.1
- MySQL 4.0
- MySQL 3.23.3
Stwórzmy tabelę ' studenci ' i wykonaj instrukcję CASE w tej tabeli.
indeks górny w ilustratorze
W powyższej tabeli widzimy, że kolumna klasowa zawiera skróconą formę działu studenta. Dlatego też skróconą formę działu zamienimy na pełną. Teraz wykonaj następujące zapytanie, aby wykonać tę operację.
SELECT studentid, firstname, CASE class WHEN 'CS' THEN 'Computer Science' WHEN 'EC' THEN 'Electronics and Communication' ELSE 'Electrical Engineering' END AS department from students;
Po pomyślnym wykonaniu powyższego zapytania otrzymamy następujące dane wyjściowe. Tutaj widzimy, że dział kolumna zawiera pełny formularz zamiast krótkiego formularza.