Oracle中条件表达式

mysql和Oracle都可以用

--条件表达式
--给EMP表中的员工起中文名字
select e.ename,
       case e.ename
         when 'SMITH' then '曹贼'
           when 'ALLEN' then '大耳贼'
             when 'WARD' then '诸葛小儿'
               else '无名'
                 end 
from emp e;

Oracle中条件表达式_第1张图片
else可以省略,不加else条件时:

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

其他都为null
Oracle中条件表达式_第2张图片

--判断如果EMP表中员工工资高于3000显示高收入,低于3000但高于1500中等收入
--低于1500低收入
select e.sal,
       case 
         when e.sal>3000 then '高收入'
           when e.sal>1500 then '中等收入'
               else '低收入'
                 end 
from emp e;

Oracle中条件表达式_第3张图片
Oracle专用

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

Oracle中条件表达式_第4张图片

--oracle中除了起别名都用单引号
--oracle专用条件表达式
select e.ename,
        decode(e.ename,
          'SMITH',  '曹贼',
            'ALLEN',  '大耳贼',
              'WARD',  '诸葛小儿',
                '无名')"别名"
                  
from emp e;

别名也可以不加双引号
Oracle中条件表达式_第5张图片

你可能感兴趣的:(Oracle)