【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 倍数。

posted @   植树chen  阅读(128)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示