【MySQL】单列函数-流程控制函数if-else,case-when
使用if
等函数根据不同的条件,执行不同的处理流程
函数 | 用法 |
---|---|
IF(value,v1,v2) | 如果vlaue的值为true,返回v1,否则返回v2 |
IFNULL(v1,v2) | 如果v1不为null,返回v1;否则返回v2 |
CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 [ELSE resultn] END | 相当于if...else if...else |
CASE expr WHEN 常量值1 THEN 值1 WHEN 常量值2 THEN 值2 [ELSE 值n] END | 相当于switch...case... |
SELECT IF(1>0,'正确','错误'), IFNULL(NULL,'Hello World') FROM DUAL; SELECT CASE WHEN 1>0 THEN '1大于0' WHEN 2>0 THEN '2大于0' ELSE '3大于0' END; SELECT CASE 1 WHEN 1 THEN '我是一' WHEN 2 THEN '我是二' ELSE '你是谁' END; SELECT employee_id,salary, CASE WHEN salary>=15000 THEN '保安大队长' WHEN salary>=10000 THEN '空调保安' WHEN salary>=8000 THEN '晒太阳保安' ELSE '无业游民' END "职业描述" FROM employees; SELECT oid,`status`, CASE `status` WHEN 1 THEN '未付款' WHEN 2 THEN '已付款' WHEN 3 THEN '已发货' WHEN 4 THEN '确认收货' ELSE '无效订单' END "订单状态" FROM t_order; SELECT last_name,job_id,salary CASE job_id WHEN 'IT_PROG' THEN 1.10*salary WHEN 'ST_CLERK' THEN 1.15*salary WHEN 'SA_REP' THEN 1.20*salary ELSE salary END "REVISED_SALARY" FROM employees;
练习:查询部门号为 10,20,30 的员工信息, 若部门号为 10, 则打印其工资的 1.1 倍, 20 号部门, 则打印其工资的 1.2 倍, 30 号部门打印其工资的 1.3 倍数。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix