Wyrażenie CASE
Wyrażenie CASE zapewnia funkcjonalność konstrukcji typu IF-THEN-ELSE w SQL.
Wynik wyrażenia CASE może być m.in. uzależniony od wartości w jednej kolumnie :
select last_name, department_id,
case department_id
when 90 then 'Zarząd'
when 60 then 'Geeki informatyczne'
else 'Inni'
end case
from employees;
W powyższym przykładzie jeśli w kolumnie department_id pojawi się wartość 90, case zwróci nam
ciąg tekstowy Zarząd , jeśli pojawi się wartość 60 dostaniemy tekst Geeki informatyczne . W
przypadku pojawienia się dowolnej innej wartości otrzymamy tekst Inni . Po wszystkich
warunkach musi być zakończenie konstrukcji klauzulą END CASE lub samo END .
Bezpłatne materiały edukacyjne. Wyrażenie CASE www.jsystems.pl A.Klusiewicz 1/3
Klauzula else nie jest konieczna. W przypadku pojawienia się innej niż 60 lub 90 wartości,
dostaniemy NULL.
Na powyższym obrazku widzimy też użycie aliasu dla wyrażenia CASE. Aby można było użyć
aliasu, warunki musimy zakończyć klauzulą END . W przypadku zastosowania klauzuli END
CASE dostajemy błąd.
Bezpłatne materiały edukacyjne. Wyrażenie CASE www.jsystems.pl A.Klusiewicz 2/3
CASE nie musi opierać się na wartościach z jednej kolumny. Na poniższym przykładzie pokazuję
dodanie kolumny z opisem stanowiska uzależnionym od wartości w różnych kolumnach.
select last_name, salary,department_id,manager_id, case
when manager_id is null then 'Prezes'
when department_id=90 then 'Czlonek zarządu'
when department_id=60 and salary>5000 then 'Programista Oracle :)'
when department_id=100 then 'Ci co nie chcą dać podwyżek'
else 'jacyś inni' end stanowisko
from employees;
Case działa w taki sposób, że jeśli warunek okaże się prawdziwy, nie sprawdza następnych. Widać
to na przykładzie pracownika King . Pracuje w departamencie 90 i jednocześnie ma null w
manager_id. Wyświetla się przy nim Prezes a nie Członek zarządu , ponieważ warunek
pierwszy został spełniony (null w manager_id) i system nie sprawdzał kolejnego.
Bezpłatne materiały edukacyjne. Wyrażenie CASE www.jsystems.pl A.Klusiewicz 3/3
Wyszukiwarka
Podobne podstrony:
Viral Blog Post Case Studycase study pracujplĆw4 Instrukcje CASE i IFCase study 1 za??znik 5zagro enie wybuchemOduwole Ebunoluwa Ethical Case Deliberation Involving the End of Life DecisionCd Dvd Case (Baby) Regular Typ Szablon I Instrukcja SkładaniaLaboratorium Use Case DiagramGRANICE WYRA E NIEOZNACZONYCHDo it Yourself Pick Case Makingwięcej podobnych podstron