How do you select all columns, plus the result of a CASE statement in oracle 11g?

32,469

Solution 1

Add an alias for mytable like this:

select t.*, (case when PRI_VAL = 1 then 'High'
                when PRI_VAL = 2 then 'Med'
                when PRI_VAL = 3 then 'Low'
          end) as PRIORITY
from MYTABLE t;

This is not dependent on any specific Oracle version, not sure about other databases.

Solution 2

As IronGoofy says, add the table alias.

On a different note be aware that there is a handy searched case syntax that would be suitable for your situation:

select t.*,
       case PRI_VAL
         when 1 then 'High' 
         when 2 then 'Med' 
         when 3 then 'Low' 
       end as PRIORITY 
from MYTABLE t; 
Share:
32,469
Kevin Pauli
Author by

Kevin Pauli

Updated on March 15, 2020

Comments

  • Kevin Pauli
    Kevin Pauli about 4 years

    I want to select *, and not have to type out all individual columns, but I also want to include a custom column with a case statement. I tried the following:

    select *, (case when PRI_VAL = 1 then 'High'
                    when PRI_VAL = 2 then 'Med'
                    when PRI_VAL = 3 then 'Low'
              end) as PRIORITY
    from MYTABLE;
    

    But it is complaining that

    ORA-00923: FROM keyword not found where expected