【DataBase】MySQL 11 SQL函数 单行函数其五 流程控制函数 & 单行函数总结
SQL函数其五 流程控制函数 & 单行函数总结
视频参考自:P43 - P52
https://www.bilibili.com/video/BV1xW411u7ax
单IF函数使用
-- 流程控制函数? -- if (布尔表达式,表达式1,表达式2) 当参数1为真时,返回参数2表达式,反之返回参数3 SELECT IF(10>5,'YES IS BIGER!!','NO SUCKER!!'); SELECT `last_name`,`commission_pct`,IF(`commission_pct` IS NULL,"TRUE 没奖金!!","FALSE 有奖金") FROM `employees`;
CASE函数的第一种
-- case函数 /* MySQL的SWITCH-CASE case 要判断的字段或表达式 when 常量1 then 要显示的值1或者语句; when 常量2 then 要显示的值2或者语句; ... else 要显示的值n或者语句n; end */ /* 案例 查询员工的工资,要求 部门号 = 30 工资1.3倍 部门号 = 40 工资1.4倍 部门号 = 50 工资1.5倍 */ SELECT `salary`, `department_id`, CASE `department_id` when 30 then `salary` * 1.3 WHEN 40 THEN `salary` * 1.4 WHEN 50 THEN `salary` * 1.5 else `salary` end as new_salary from `employees`;
CASE函数的第二种
-- 第二种 /* case when 条件1 then 要返回的值1或语句1 when 条件2 then 要返回的值2或语句2 when 条件3 then 要返回的值3或语句3 else 条件n then 要返回的值n或语句n end; */ -- 案例 /* 如果工资>20000,显示A级别 如果工资>15000,显示B级别 如果工资>10000,显示C级别 否则D级别 */ SELECT `last_name`,`salary`, CASE WHEN `salary`>20000 THEN 'LEVEL A' WHEN `salary`>15000 THEN 'LEVEL B' WHEN `salary`>10000 THEN 'LEVEL C' ELSE 'LEVEL D' END AS new_salary FROM `employees` ORDER BY new_salary;
单行函数的总结:
【字符函数】https://www.cnblogs.com/mindzone/p/12784483.html
- 1、length
- 2、concat
- 3、substr
- 4、instr
- 5、trim
- 6、upper & lower
- 7、lpad & rpad
- 8、replace
【数值函数】https://www.cnblogs.com/mindzone/p/12784594.html
- 1、round
- 2、ceil
- 3、floor
- 4、truncate
- 5、mod
【日期函数】https://www.cnblogs.com/mindzone/p/12784932.html
- 1、now
- 2、curdate
- 3、curtime
- 4、year
- 5、month
- 6、monthname
- 7、day
- 8、hour
- 9、minute
- 10、str_date
- 11、date_format
【其他函数】https://www.cnblogs.com/mindzone/p/12784974.html
- 1、version
- 2、database
- 3、user
【控制函数】
- 1、if
- 2、case