6.1 MySQL数字函数和条件函数

news/2025/1/15 21:54:44/

以前我们在课程中使用过一些sql>mysql的内置函数,比如说四舍五入的round函数,做日期计算的data, datediff函数等等。那么本次课程咱们就来系统的学习一下sql>mysql的这些内置函数,我们使用编程语言写程序的时候,通常会把某一项业务功能封装的函数里边,其实数据库也是这么做的,它为我们预先定义了很多函数,以供我们去使用

一、数字函数 

函数功能用例
ABS绝对值ABS(-100)
ROUND四舍五入ROUND(4.62)
FLOOR强制舍位到最近的整数FLOOR(9.9)
CEIL强制进位到最近的整数CEIL(3.2)
POWER幂函数POWER(2,3)
LOG对数函数LOG(7,3)
LN对数函数LN(10)
SQRT开平方SQRT(9)
PI圆周率PI()
SIN三角函数SIN(1)
COS三角函数COS(1)
TAN三角函数TAN(1)
COT三角函数COT(1)
RADIANS角度转换弧度RADIANS(30)
DEGREES弧度转换角度DEGREES(1)

二、条件函数

Mysql里边给我们提供了两个函数,可以实现简单的条件判断。比如说ifnull这个函数我们并不陌生了,那么它是用来判断某一个值是否为null值。如果为now

还有一个函数叫做if函数,这个函数非常像编程语言里边的三元运算符。当这个表达式结果为真的情况下,返回的是第一个值。如果说前面的表达式的结果为false, 那么返回的是第二个值

 练习1:中秋节公司发放礼品,SALES部门发放礼品A,其余部门发放礼品B,打印每名员工获得的礼品

sql">select
e.empno,e.ename,d.dname,
if(d.dname="SALES","礼品A","礼品B")
from t_emp e join t_dept d on e.deptno=d.deptno

 练习2:公司年庆决定组织员工去集体旅游,每个部门的旅游目的地是不相同的。比如说SALES部门去P1,ACCOUNTING这个部门去P2的地点,RESEARCH部门去P3地点,查询每名员工的旅游地点

sql">select
e.empno,e.ename,
(casewhen(d.dname="SALES") then("P1")when(d.dname="ACCOUNTING") then("P2")when(d.dname="RESEARCH") then("P3")
end) as place
from t_emp e join t_dept d on e.deptno=d.deptno

 练习3:公司决定为员工调整基本工资,具体调整方案如下

序号条件涨幅
1SELES部门里工龄超过20年10%
2SELES部门里工龄不满20年5%
3ACCOUNTING部门+300元
4RESEARCH部门里低于部门平均底薪+200元
5没有部门的员工+100元
sql">update
t_emp e left join t_dept d on e.deptno=d.deptno
left join (select deptno,avg(sal) as avg from t_emp group by deptno) t
on e.deptno=t.deptno
set e.sal=(
casewhen d.dname="SALES" and datediff(now(),e.hiredate)/365>20then e.sal*1.1when d.dname="SALES" and datediff(now(),e.hiredate)/365<20then e.sal*1.05when d.dname="ACCOUNTING"then e.sal+300when d.dname="RESEARCH" and e.sal<t.avgthen e.sal+200when e.deptno is null then e.sal+100else e.sal
end)


http://www.ppmy.cn/news/1563434.html

相关文章

linux stdout/stderr重定向到文件,>或tee

正常情况下直接使用 >或者tee命令只能把stdout的终端输出重定向到文件中&#xff0c;而stderr的输出是无法写到文件中的。 比如在使用svn up时遇到svn 报错的错误&#xff0c;svn ERROR/WARNING 用下面的语句是不会将ERROR/WARNING行写到svn.log的 svn up | tee svn.log…

好用的php商城源码有哪些?

选择一个优秀的商城工具&#xff0c;能更好地帮助大家建立一个好用的商城系统。目前比较流行的都是开源PHP商城系统&#xff0c;那么现实中都有哪些好用的PHP商城源码值得推荐呢&#xff1f;下面就带大家一起来了解一下。 1.TigShop 【推荐指数】&#xff1a;★★★★★☆ 【推…

【MySQL数据库】基础总结

目录 前言 一、概述 二、 SQL 1. SQL通用语法 2. SQL分类 3. DDL 3.1 数据库操作 3.2 表操作 4. DML 5. DQL 5.1 基础查询 5.2 条件查询 5.3 聚合函数 5.4 分组查询 5.5 排序查询 5.6 分页查询 6. DCL 6.1 管理用户 6.2 权限控制 三、数据类型 1. 数值类…

CentOS 6.8 安装 Nginx

个人博客地址&#xff1a;CentOS 6.8 安装 Nginx | 一张假钞的真实世界 提前安装&#xff1a; # sudo yum install yum-utils 一般情况下这个工具系统已经安装。 创建文件/etc/yum.repos.d/nginx.repo&#xff0c;输入内容如下&#xff1a; [nginx-stable] namenginx stab…

Python跨年烟花

目录 系列文章 写在前面 技术需求 完整代码 下载代码 代码分析 1. 程序初始化与显示设置 2. 烟花类 (Firework) 3. 粒子类 (Particle) 4. 痕迹类 (Trail) 5. 烟花更新与显示 6. 主函数 (fire) 7. 游戏循环 8. 总结 注意事项 写在后面 系列文章 序号直达链接爱…

LLM实现视频切片合成 前沿知识调研

1.相关产品 产品链接腾讯智影https://zenvideo.qq.com/可灵https://klingai.kuaishou.com/即梦https://jimeng.jianying.com/ai-tool/home/Runwayhttps://aitools.dedao.cn/ai/runwayml-com/Descripthttps://www.descript.com/?utm_sourceai-bot.cn/Opus Cliphttps://www.opu…

Golang——Interface类型

本文详细介绍Golang的interface数据结构类型&#xff0c;包括基本实现和使用等。 文章目录 Go 语言中的 interface 详解接口定义实现接口空接口 interface{}示例&#xff1a;空接口的使用 interface 类型判断1. 类型断言&#xff08;Type Assertion&#xff09;语法示例类型转…

torch.einsum计算张量的外积

torch.einsum 是一种强大的张量操作工具,可以通过爱因斯坦求和约定(Einstein summation convention)来简洁地表示复杂的张量运算。通过它,我们可以高效地计算矩阵乘法、转置、点积、外积等操作。 以下是关于如何使用 torch.einsum 计算两个四维张量在第三维度上的外积的解…