一:case when then else end

select e.emp_no,e.first_name,e.last_name,em.btype ,s.salary,    -- 直接输出的字段
   (case btype when 1  then s.salary*0.1                        -- case when得出不同条件的结果   
              when 2  then s.salary*0.2
              else s.salary*0.3
              end) as bonus                                  
from employees as e join emp_bonus as em on e.emp_no=em.emp_no  -- 连接条件 
join salaries as s on s.emp_no=e.emp_no                         -- 连接条件 
where to_date='9999-01-01';                                     -- 筛选条件

二: 这个感觉有点卡数字bug,刚好1就是0.1,2就是0.2,而且只有这两种情况,没有0.3的情况出现

select e.emp_no,first_name,last_name,btype ,salary,round(salary*(em.btype/10),1) as bonus 
from employees as e join emp_bonus as em on e.emp_no=em.emp_no
left join salaries as s on s.emp_no=e.emp_no
where to_date='9999-01-01';