decode/case when:
-- 生成数据 create table sss (name varchar2(20), gender int); insert into sss values ('樱桃小丸子', 2); insert into sss values ('路飞', 1); insert into sss values ('大熊', 3); insert into sss values ('光头强', 1); commit; -- 查询,将 gender 的数字转化为男女 -- 1. decode 函数的方式 select name, decode(gender, 1, '雄性', 2, '雌性', '未知性别') "性别" from sss; -- 2. case when 的方式 select name, case gender when 1 then '雄性' when 2 then '雌性' else '未知性别' end "性别" from sss; -- 3. case when 的另一种方式 select name, case when gender <= 1 then '雄性' when gender >= 2 then '雌性' else '未知性别' end "性别" from sss; -- 给 emp 中的人加工资: ---- 1000 元以下的,加 50% ---- 2000 元以下的,加 30% ---- 3000 元以下的,加 20% ---- 其他人 5% create table emp3 as select * from emp; -- 如果要将所有的工资翻倍,这么写: update emp3 set sal = sal*2; -- 如果不同的人加不同的工资,需要用到 case when: update emp3 set sal = (case when sal <= 1000 then sal*1.5 when sal <= 2000 then sal*1.3 when sal <= 3000 then sal*1.2 else sal*1.05 end); -- 如果 1981/5/1 之前来公司的人按照上面调薪,其他人只调 1% 呢? -- [TODO]