Posts Tagged ‘case funkcja’

Funkcje CASE i DECODE w Oracle

niedziela, sierpień 3rd, 2008

Funkcja CASE działa tak że porównuje wartość kolumny z wyrażeniem i jeżeli jest spełnione to robi działanie na  kolumnie jeżeli nie to inne, jeżeli nie spełnia żadnego warunku wtedy zwraca wartość która jest, tego typu funkcje  możemy używać np. do wyświetlania, różnego zwiększania pensji w zależności od stażu przykład jak poniżej:

select imie, nazwisko, data_zatrudnienia, pensja from pensje
CASE WHEN data_zatrudnienia< to_date(’01-Mar-2001′) THEN pensja*1,2
WHEN data_zatrudnienia>= to_date(’01-Mar-2001′) THEN pensja*1,1
ELSE pensja*1,02 END
from pensje;

wytłumaczenie:

jeżeli pracownik został zatrudniony przed 1 marca 2001 dostaje 20% podwyżki, jezeli po to tylko 10% w  innym przypadku 2% (hipotetycznie) ponieważ dwa wcześniejsze warunki powinny pokryć całość.

jeżeli chcemy podwyższyć pensje ale nie pod kontem datay zatrudnienia a np. stanowiska to wtedy używamy funkcji DECODE

przykład:

select imie, nazwiko, pensja,
DECODE (stanowisko, ‘dyrektor’, pensja*1.4,
‘kierownik’, pensja*1.2,
pensja*1,05) from pensje;

tutaj sprawa prosta dla dyrektorów dajemy 40% podwyżki dla kierowników 20% a dla pozostałych 5%


praca - Filmowanie w trzech wymiarach - techno - wycieczki budapeszt - szkoły językowe warszawa - Koszulki Polo - Kredyt gotówkowy - Szyba - http://cv.wzory.biz - Karcher - prezenty - recepcje