Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use If condition inside a Case statement?

Below is my query. Is this righ?

SQL> select case when value in (1000) then null
2  when user in ('ABC') then user
3  when area in ('DENVER') then
4  if value = 2000 then 'Service1'
5  else value = 3000 then 'Service2'
6  end if
7  else null
8  end as num_code from service_usoc_ref;
if prin = 2000 then 'Omaha'
*
ERROR at line 4:
ORA-00905: missing keyword

Please help me.

like image 419
Samurai Avatar asked Feb 28 '12 06:02

Samurai


2 Answers

You can either put another case or use decode (as @madhu suggested):

select case 
  when value in (1000) then null
  when user in ('ABC') then user
  when area in ('DENVER') then
    case when value = 2000 then 'Service1'
         when value = 3000 then 'Service2'
    end 
  else null
  end as num_code 
from service_usoc_ref;
like image 157
A.B.Cade Avatar answered Sep 30 '22 01:09

A.B.Cade


This could help you

 select  case when value in (1000) then null
                         when user in ('ABC') then user
                       when area in ('DENVER') then
decode( value, 2000 , 'Service1',3000 , 'Service2', NULL)  num_code 
from service_usoc_ref;
like image 24
Maddy Avatar answered Sep 30 '22 02:09

Maddy