【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

 

posted @ 2020-04-27 11:36  emdzz  阅读(153)  评论(0编辑  收藏  举报