select ENAME,decode(deptno,10,'部门1',20,'部门2',30,'部门3','其他') "所在部门" from emp;---------说明:deptno若为10则部门1........否则都不满足则其他
2、case when [实现if ..then 逻辑]
(1)case 字段
when ‘值1’ then ‘展现值1’
when ‘值2’ then ‘展现值2’
else ‘其他’ end ----------------------此种case较少用,因为无法写判断表达式(如大于,小于),受限制较多
(2)case
when 表达式1 then ‘展现值1’
when 表达式2 then ‘展现值2’
else ‘其他’ end -----------------------此种较为常用
例子:update student_drb set sex= case when sex='男' then 1 else 2 end
(3)In 在某集合内
select * from emp t where t.deptno in(30,10);
(4)exists 是否存在
查找部门号是10的所有员工信息
select * from emp e where exists(select 1 from dept d where e.deptno=d.deptno and d.deptno=10);
查找部门号不是10的所有员工信息
select * from emp e where not exists(select 1 from dept d where e.deptno=d.deptno and d.deptno=10);
注意:用exists可以提高sql的效率,可以取代in