Instrukcja CASE w zapytaniach SELECT języka SQL
Zapytania w SQL do bazy danych to nie tylko proste porównania klucza lub innych kolumn. Aby pobrać dokładnie spersonalizowane informacje możemy zastosować również instrukcję CASE
– podobną do instrukcji switch na przykład z języka C++. Skorzystanie z tej metody znacząco ułatwia pobranie ściśle określonych danych, a przede wszystkim skraca kod naszego programu gdzie musielibyśmy pewnie „odfiltrować” niepotrzebne informacje.
CASE
działa na takiej zasadzie, że dla każdego wiersza zwracanego w wyniku zapytania sprawdza warunek logiczny i w zależności od wyniku wypisuje komunikat podany po słowie kluczowym THEN
.
Przykład użycia instrukcji CASE
:
SELECT imie, nazwisko, wiek, CASE WHEN wiek < 30 THEN 'Młodszy developer' WHEN wiek > 30 THEN 'Starszy developer' ELSE 'Pracownik ma 30 lat' END FROM pracownicy;
Ogólny kod:
SELECT kolumna CASE WHEN kolumna > 20 THEN 'Jeżeli prawda' WHEN warunekLogiczny THEN 'Jeżeli prawda' WHEN warunekLogiczny THEN 'Jeżeli prawda' ELSE 'Jeżeli fałsz' END FROM tabela;
a czy czasem zadziałą bez END lub ELSE?
Jest jakaś krótsza wersja tej instrukcji?
Sprawdź i daj znać ;)