Case Function
CASE:- CASE statement is used for series of IF statements.CASE statement is evaluated from top to bottom. If a condition is true, then corresponding THEN clause is executed and execution jumps to the END CASE clause.
Note:- Case has two types syntax
1) Value Match CASE Expression
Example1:-
SELECT ename, empno, deptno
(CASE deptno
WHEN 10 THEN 'Accounting'
WHEN 20 THEN 'Research'
WHEN 30 THEN 'Sales'
WHEN 40 THEN 'Operations'
ELSE 'Unknown'
END) department
FROM emp
ORDER BY ename;
2) Searched CASE Expression
SELECT ename, empno, deptno
(CASE
WHEN deptno=10 THEN 'Accounting'
WHEN deptno=20 THEN 'Research'
WHEN deptno=30 THEN 'Sales'
WHEN deptno=40 THEN 'Operations'
ELSE 'Unknown'
END) department
FROM emp
ORDER BY ename;
Note:-We can use any operators in searched CASE Expression.
Example2:- To display grade based on their salaries.
select ename, case when sal < 1000 then 'Low Salary'
when (sal >=1000 and sal < 2000) then 'Medium Salary'
when (sal >= 2000 and sal < 3000) then 'Enough Salary'
else 'High Salary'
end sal_grade
from emp ;
Example3:-
select e.ename,case when e.job in ('PRESODENT') then 'Boss'
when e.job in ('MANAGER') then 'Managers'
else 'General Employees'
end emp_category
from emp e;
Note:-We can use CASE in PLSQL with same syntax
Example4:-
declare
grade char(1);
begin
grade := '&grade';
case grade
when 'A' then dbms_output.put_line('Excellent');
when 'B' then dbms_output.put_line('Very good');
when 'C' then dbms_output.put_line('Good');
when 'D' then dbms_output.put_line('Fair');
when 'F' then dbms_output.put_line('Poor');
else dbms_output.put_line('no such grade');
end case;
end;
/
PL/SQL procedure successfully completed.
No comments:
Post a Comment