DECODE เป็นการเขียน เงื่อนไข บนคำสั่ง select ครับ เหมือน CASE -WHEN - THEN - ELSE - END
ถ้าเข้าเงื่อนไขที่กำหนด ให้กระทำอะไรก็เขียนไป
เช่น ถ้าผมจะลองดูว่าถ้าจะเพิ่มเงินเดือน ให้แต่ละแผนก (jobid) เงินเดือนจะเพิ่มเป็นเท่าไหร่ โดยมีเงื่อนไขดังนี้
แผนก IT_PROG เพิ่มอีก 10%
แผนก ST_CLERK เพิ่มอีก 15%
แผนก SA_REP เพิ่มอีก 20%
แผนก อื่นๆ ให้แสดง salary ปัจจุบันออกมา ไม่เพิ่มให้
SELECT last_name
, job_id, salary
, DECODE(job_id, 'IT_PROG', 1.10*salary,
'ST_CLERK', 1.15*salary,
'SA_REP', 1.20*salary,
salary) AS UPDATE_SALARY
FROM employees ;
ถ้าใช้ตั้งแต่ version 9i เป็นต้นมา สามารถใช้ CASE-WHEN-THEN-ELSE-END ได้เลยครับ