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ć ;)