在Java中有if…else,switch…case等流程控制语句结构
mysql中有对应的函数
(1)ifnull(x,value):如果x是null,就用value计算,否则还是用x计算
(2)CASE
WHEN 条件1 THEN result1
WHEN 条件2 THEN result2
…
[ELSE resultn]
END
#查询员工的姓名,薪资,奖金比例,实发工资
#实发工资 = 薪资 + 薪资 * 奖金比例
SELECT ename,salary,commission_pct, salary + salary * IFNULL(commission_pct,0) AS “实发工资” FROM t_employee;
查询员工的信息,
如果薪资高于20000,显示该员工是“高富帅”,
如果薪资在15000-20000之间,显示“潜力股”
如果薪资在10000-15000之间,显示“有为青年”
如果薪资在10000以下,显示“屌丝"
相当于if…else if…
SELECT ename, salary,
CASE
WHEN salary>=20000 THEN “高富帅”
WHEN salary>=15000 THEN “潜力股”
WHEN salary>=10000 THEN “有为青年”
ELSE “屌丝”
END AS “标签”
FROM t_employee;
#查询订单表,显示订单编号,和订单状态,如果订单状态是0,显示新订单,是1,显示已付款…
相当于switch…case
SELECT oid ,price,
CASE state
WHEN 0 THEN “新建订单”
WHEN 1 THEN “已付款”
WHEN 2 THEN “已发货”
WHEN 3 THEN “已收货”
END
FROM t_order