1. 用case表达式做等值判断
格式:
case 表达式
when 值1 then 返回值1
when 值2 then 返回值2
……
[else 默认返回值]
end
示例:
查询员工编号,姓名,部门编号,部门名称;
部门名称:
=30 SALE
=20 ETC
=10 JXB
其他 ICSS
SELECT empno,
ename,
deptno,
CASE deptno
WHEN 30 THEN 'SALE'
WHEN 20 THEN 'ETC'
WHEN 10 THEN 'JXB'
ELSE 'ICSS'
END AS 部门名称
FROM emp;
2. 用case表达式做非等值判断
格式:
case
when 条件表达式1 then 返回值1
when 条件表达式2 then 返回值2
……
[else 默认返回值]
end
示例:
查询员工编号,姓名,工资,工资级别,部门编号
工资级别:
>=5000 A
>=3000 B
>=2000 C
其他 D
SELECT empno,
ename,
sal,
CASE
WHEN sal>=5000 THEN 'A'
WHEN sal>=3000 THEN 'B'
WHEN sal>=2000 THEN 'C'
ELSE 'D'
END AS 工资级别,
deptno
FROM emp;
1. decode函数与case第一种等值可以替代
格式:
decode(表达式,值1,返回值1,值2,返回值2....[,默认值返回值])
示例:
SELECT empno,
ename,
deptno,
decode(deptno,30,'SALE',20,'ETC',10,'JXB','icss')AS 部门名称
FROM emp;