Case ifadesi koşullarımızı, şartlarımızı toplu bir biçimde sorgumuza yazmamızı ve şartımıza uyanlara operasyon yapmamızı sağlar ve işimizi kolaylaştırır. Decode ye göre daha okunaklıdır.
Aşağıdaki örnekte job_id si IT_PROG olanları 1.10 ile , ST_CLERK olanları 1.15 ile SA_REP olanları 1.20 ile çarpıp koşulların dışındaki satırlara ise salary değerini yazdıralım
SELECT last_name, job_id, salary,
CASE job_id WHEN 'IT_PROG' THEN 1.10*salary
WHEN 'SH_CLERK' THEN 1.15*salary
WHEN 'SA_REP' THEN 1.20*salary
ELSE salary END "REVISED_SALARY" FROM employees;
Aynı örneği decode ile yapalım.
Decodenin case den farkı "when" , "then" , "else" ifadelerinin yerine "," virgül kullanılır.
SELECT last_name, job_id, salary,
DECODE(job_id, 'IT_PROG', 1.10*salary,
'SH_CLERK', 1.15*salary,
'SA_REP', 1.20*salary,
salary)
Hiç yorum yok:
Yorum Gönder