Oracle的查询-条件表达式

给emp表中员工起中文名

select e.ename from emp e;

select e.ename,
       case e.ename
          when 'SMITH' then '曹贼'
            when 'ALLEN' then '大耳贼'
              when 'WARD' then '诸葛小儿'
                else '无名'
                  end
from emp e;

--条件表达式的通用写法,mysql和oracle都可用


接下来省略else

select e.ename,
       case e.ename
          when 'SMITH' then '曹贼'
            when 'ALLEN' then '大耳贼'
              when 'WARD' then '诸葛小儿'
                --else '无名'
                  end
from emp e;


判断emp表中员工工资,如果高于3000显示高收入,如果高于1500低于3000显示中等收入,其余显示低收入

select e.sal,
       case 
          when e.sal>3000 then '高收入'
            when e.sal>1500 then '中等收入'
                else '低收入'
                  end
from emp e;


--oracle专用条件表达式
select e.ename,
        decode(e.ename,
           'SMITH',  '曹贼',
             'ALLEN',  '大耳贼',
               'WARD',  '诸葛小儿',
                 '无名')                  
from emp e;

--oracle专用条件表达式
select e.ename,
        decode(e.ename,
           'SMITH',  '曹贼',
             'ALLEN',  '大耳贼',
               'WARD',  '诸葛小儿',
                 '无名') 中文名                 
from emp e;

 Oracle中,除了起别名,都用单引号' '

原文地址:https://www.cnblogs.com/Sm1lence/p/11426669.html