1. if()函数
SELECT IF(10<5,"正确","错误");
IFNULL(value1, value2) 如果value1不为空,返回value1,否则返回value2
2. CASE expr WHEN 常量值1 THEN 值1 WHEN 常量值1 THEN 值1 … [ELSE 值n] END 相当于Java的switch…case…
适合于等值判断的情况
案例 :查询员工工资,要求:
部门号=30, 显示的工资为原工资的1.1倍
部门号=40, 显示的工资为原工资的1.2倍
部门号=50, 显示的工资为原工资的1.3倍
其它部门为原始工资
SELECT salary 原始工资,department_id,
case department_id
WHEN 30 THEN salary*1.1
WHEN 40 THEN salary*1.2
WHEN 50 THEN salary*1.3
ELSE salary
end AS 新工资
FROM employees
3.CASE WHEN 条件1 THEN result1 WHEN 条件2 THEN result2 … [ELSE resultn] END 相当于Java的if…else if…else…
适合于区间判断的情况
案例:查询员工的工资情况
如果工资大于20000, 为A
大于15000, 为B
大于10000, 为C
否则为D
SELECT salary ,
case
WHEN salary>20000 THEN 'A'
WHEN salary>15000 THEN 'B'
WHEN salary>10000 THEN 'C'
ELSE 'D'
end AS 工资级别
FROM employees;