Example 1:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyXO1FOt_k1hBidRPl3NmvV_BlNutr9kUvdxI-pWM9zf_iV3xA729Z3IFRQrhm5LOg5STQyUTqzrvw_lhrjKJ-Twe0Dkj9IePrNi62W3KOypLhr_7TqyvfFa9XDqPE9EA7JKEisb_w2zRx/s320/case1.png)
Column NewJob Format A15 -
Heading 'New Job Desc'
Select EmpNo,
EName,
-------------------------------
Case When Job = 'CLERK'
Then 'Admin Assistant'
Else InitCap(Job)
End
As
NewJob
-------------------------------
From Emp
Where DeptNo = 30;
Example 2:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifM4HK9lIWtxE6MJo0ExMly612iAIgu76cBsSPs2PbsrWHYsm1qwFuepB1z_C3lat2EdqyqaTXzgEJlA4KBQ3bCD5StZxQjZXFqAb8DfoHdVQd8dHc_Ov5deLUu5mFZ5NTYg3c0yd9jyrE/s400/case2brpt.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGFgfuB-H_ZLIr0h3doSPhSC1Bo8-DjA7eiTZz2qYOTg3dagGHs8TT7z10FBmJJ34JA8ekWIMj9bsaXrbJVCeAKCWXw11h-shb2fu26bGHpfqoHRrqEf5ZHZp5KNIeajSjWis6ikTIznQA/s400/case2b.png)
Column NewGrade Format A5 Heading 'New|Grade'
Select EmpNo,
EName,
Sal,
----------------------------------------
Case When (Sal >= 1000)
And (Sal <= 1500)
Then '0'
--------------------
When (Sal > 1500)
Then (
Select To_Char(Grade)
From SalGrade
Where Sal Between LoSal
and HiSal
)
--------------------
Else '?'
End
As
NewGrade
--------------------------------------
From Emp
Where DeptNo = 30;
Example 3:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYCC693JbN_f3lTCUae9bEKi-bYFWg_Ekmi8cWPV8O9ub-emRlJEUNNhvjYRC8DwBBOFdLaxDNzh0Mm7gPS3SrXJlaoK9RjHgbrc0ZghF9D1rOhZpIF4NQiwArwcR4JSzyFksII7zExMFd/s400/case2crpt.png)
Column DataLen Format A6 Heading 'Data|Length'
Select Column_Name,
Data_Type,
------------------------------------------------------
Case When (Data_Precision is Null)
Then To_Char(Data_Length,'999')
Else ' '||Data_Precision||'.'||Data_Scale
End
As
DataLen
------------------------------------------------------
From User_Tab_Columns
Where Table_Name = 'EMP';
Example 4:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihPug62LXbdTyPoaLQf38o1Xu3X6PRzV2l4ZbrznAOwtWxLLVn41P0yBFC01wtcJHPxV_F_LjDKXs3fTWsRkQNHJJDUppzxePFsmZZMAUkVQxkgwxomeTni6y5Jj8g6b2Kg-BYxpKZaWwI/s400/case2drpt.png)
Column CommStatus Format A16 Heading 'Commissioned|Status'Example 5:
Select EmpNo, EName, Sal, Comm,
-------------------------------
Case When Comm is Null
Or Comm = 0
Then 'Not Commissioned'
Else 'Commissioned'
End
As
CommStatus
-------------------------------
From Emp
Where DeptNo = 30;
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtr5rl3Ocpoiqf6A5lBbENkUpekszkTWw7OVom0Uiv_B5fo9gSnk-dsreymuVpgZZf4TAn3BH3ioJ2LchzzUE-nIfW1gB4D-RSLZfocUKRmShFTg2XnFd2HG1Ke2e6_KQ5Z8sCnmwkAn1I/s400/case2erpt.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsdetbH7yAkkwuPqQrYIUOdOtzr7lj7TMATKXigxgNd7RqmJtAGrDZRfchqV4aVVMRBBZmpQzMP8dg6zYpAXVl8Z-2_ycoV7LwnuZcBIOtN101kmxaZ1cXa3y4nxXR9zlYbhsUJOPasRM3/s400/case2c.png)
Select Ename, Job, Deptno, Mgr,
--------------------------------------
Case When Job In ('MANAGER' , 'SALESMAN' )
Then
Case When DeptNo = 10
Then 'Type A'
Else 'Type B'
End
Else
Case When Mgr = 7698
Then 'Type C'
Else 'Type D'
End
End
As
Type
--------------------------------------
From Emp;
See Oracle documentation for further detail:
Case expressions
Case expressions
No comments:
Post a Comment