Oracle实践|内置函数之数学型函数

在这里插入图片描述

📫 作者简介:「六月暴雪飞梨花」,专注于研究Java,就职于科技型公司后端工程师
🏆 近期荣誉:华为云云享专家、阿里云专家博主、腾讯云优秀创作者、ACDU成员
🔥 三连支持:欢迎 ❤️关注、👍点赞、👉收藏三连,支持一下博主~

文章目录

  • 序言
    • 背景说明
    • 示例环境
  • 1 数学数值处理
    • 绝对值--ABS
    • 取余--MOD
    • 数值截取--TRUNC
    • 随机数--ROUND
    • 向上/下取整--CEIL/FLOOR
  • 数学运算
  • 2 数学符号判断
  • 总结

序言

背景说明

Oracle 数据库提供了丰富的内置函数,涵盖数值处理、字符串操作、日期和时间处理、逻辑判断、集合处理、数据分析、数据类型转换等多个方面。下面就随着我一起来学习下这个内置函数吧,有解释不到之处,还望批评指正。
Oracle 数据库提供了一系列数学类型的函数,主要有数值处理部分和数学符号判断函数,用于数学方面的数值计算和简单的数值转换。
在这里插入图片描述

示例环境

本篇示例是基于Oracle DB 19c EE (19.17.0.0.0)版本操作,所操作的环境依旧是oracle提供的在线测试环境。如果有不同之处,请指出。
在这里插入图片描述

1 数学数值处理

在非统计计算、金融相关行业,这些内置函数使用频率较少,只需要了解即可,不做强制掌握。

绝对值–ABS

【定义】

ABS(number):返回数字的绝对值(任何数的绝对值都是非负数)。

【示例】
分别获取 -10 的绝对值,0 的绝对值,8 的绝对值,

SELECT 
    ABS(-10) AS default_1,
    ABS(0) AS default_2,
    ABS(8) AS default_3
FROM DUAL;

在这里插入图片描述

取余–MOD

【定义】

MOD(n1, n2):返回n1除以n2的余数。

【示例】
如果n2为0,则返回n1,例如示例中的Modulus_5、Modulus_6此函数同我们数学上的取模还有些不一样。
如果n2不为0,返回值为数学中的取模后的数值,状态为n1的状态(当n1为正数时返回正数状态,当n1为负数状态时,返回值为负数状态)。

SELECT 
    MOD(11, 4) "Modulus_1",
    MOD(11, -4) "Modulus_2",
    MOD(-11, 4) "Modulus_3",
    MOD(-11, -4) "Modulus_4",
    MOD(11, 0) "Modulus_5",
    MOD(-11, 0) "Modulus_6"
FROM DUAL;

在这里插入图片描述

注意⚠️:代码部分参考官方的数据值。此时有可能有疑问,如果 0 对 0 取模会发生什么呢?其实,对照上述的定义,思考下答案就不言而喻了。

数值截取–TRUNC

下面这几个函数比较常用,尤其是在金融计算方面。
【定义】

TRUNC(number[, decimal_places]):截去数字的小数部分,可选地保留指定小数位数。

注意⚠️:这个函数还有一个日期类型的参数,请参考上一篇「日期与时间的函数」。

【示例】
当给定一个数值后,如果 decimal_places 为正整数,那么就是保留小数的位数,例如15.7982, 其中decimal_places = 2,那么就是执行完后的结果为15.79。
当给定一个数值后,如果 decimal_places 为负整数,那么就是去掉小数部分后,从蒸熟部分开始从右向左置为几位0(截取不足部分补充 0 ),例如 1215.7982 ,其中decimal_places = -3,那么就是执行完后的结果为1000。

SELECT 
    TRUNC(15.7982, 2) "TRUNC_1",
    TRUNC(1215.7982, -3) "TRUNC_2" 
FROM DUAL;

在这里插入图片描述

随机数–ROUND

【定义】

ROUND(number[, decimal_places]):四舍五入数字到指定小数位数。这个函数已经使用的比较频繁了,这里不在赘述,有点类似上面的函数,其实了解参数的含义,那么就是实践了。

向上/下取整–CEIL/FLOOR

这个函数的用途是不是很熟悉,以前在饭馆(作者老家都是饭馆,饭店,一般不会写餐馆)吃饭结账时,我们的账单是一个很好的例子,例如结帐时123.5元,那么一般会收取123元。
【定义】

CEIL(number):返回大于或等于number的最小整数(向上取整),例如CEIL(123.45) = 124。

FLOOR(number):返回小于或等于给number最大整数(向下取整),例如FLOOR(123.45) = 123。

在这里插入图片描述

【示例】

SELECT 
    CEIL(123.5) "default_1",
    FLOOR(123.5) "default_2" 
FROM DUAL;

在这里插入图片描述

数学运算

不常用的一些函数,一般的科学类的使用的频率比较高。
【定义】

POWER(base, exponent):返回base的exponent次幂,例如2的3次幂方等于8,在数学上公式为 2^3 = 8。

SQRT(number):返回number的平方根,例如4的平方根为2,在数学上公式表示为 √4 = 2。

LN(number), LOG(number[, base]):自然对数和基于特定基数的对数(不常用的就不写了,可以参考下官方指导文档)。

2 数学符号判断

【定义】
SIGN(number):返回数字的符号,常用的就是判断一个数字的状态(1代表正数,0代表零,-1代表负数)。
【示例】

SELECT 
    SIGN(4) "default_1",
    SIGN(0) "default_2", 
    SIGN(-3.8) "default_3" 
FROM DUAL;

在这里插入图片描述

总结

在数学函数或者统计函数上,常用的一半都是在SELECT中做计算或数值转换,不过我们一般在使用子句中使用转换参数值再来使用列查询去做匹配,这样子做的好处是会走索引,如果使用在SELECT上,会隐式转换为临时字段,此时会增加查询时间,消耗性能。


欢迎关注博主 「六月暴雪飞梨花」 或加入【六月暴雪飞梨花社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/648435.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CDC 数据实时同步入湖的技术、架构和方案(截至2024年5月的现状调研)

近期,对 “实时摄取 CDC 数据同步到数据湖” 这一技术主题作了一系列深入的研究和验证,目前这部分工作已经告一段落,本文把截止目前(2024年5月)的研究结果和重要结论做一下梳理和汇总。为了能给出针对性的技术方案&…

基于小波分析和机器学习(SVM,KNN,NB,MLP)的癫痫脑电图检测(MATLAB环境)

癫痫是一种由大脑神经元突发性异常放电导致的大脑功能性障碍疾病。据世界卫生组织统计,全球约有7000万人患有癫痫。癫痫患者在发病时呈现肌肉抽搐、呼吸困难、意识丧失等症状。由于癫痫发作的偶然性,患者极有可能在高空、驾驶、游泳等危险情况下发病并丧…

掌握栈回溯意味着什么?

来源:公众号【鱼鹰谈单片机】 作者:鱼鹰Osprey ID :emOsprey 历时两个月(1/3),第一个完成电子表项目的学员出现了,并且顺利的掌握了栈回溯技巧,在工作中快速定位了一个任务异常挂起…

【STM32】 独立看门狗配置方法

什么是看门狗 看门狗(watchdog)指的是一种监控系统或程序,用于定期检测和监控其他系统或程序的运行状态,并在出现问题或故障时采取相应的措施。它可以是硬件设备,也可以是软件程序。 在计算机领域中,看门狗…

全国青少年信息素养大赛历届复赛、国赛真题

由于2024年信息素养大赛初赛比较简单,特别是Scrath图形化编程和Python编程,八九分钟及半个小时内交卷的也多,100分及80分以上的比较多,(各赛区复赛晋级根据两个指标进行排名,初赛成绩和答题用时。首先根据分…

AC/DC电源模块:提供高质量的电力转换解决方案

BOSHIDA AC/DC电源模块:提供高质量的电力转换解决方案 AC/DC电源模块是一种电力转换器件,可以将交流电转换为直流电。它通常用于各种电子设备和系统中,提供高质量的电力转换解决方案。 AC/DC电源模块具有许多优点。首先,它能够提…

玩机进阶教程------固件中的分区表 gpt_backup0.bin gpt_both0.bin gpt_main0.bin有什么区别 怎么修改分区表【一】

不管是emmc还是ufs在官方的线刷包中都有分区表存在。分区表包含有各个分区的地址段落。如果你在fast模式刷入官方固件还解决不了系统问题。那有几率是分区表损坏。这种情况无论你怎么刷写分区是解决不了问题的。 此类话题在百度很难搜索到,大多都是讲分区表的类型 结构 等等,…

23种设计模式全面总结 | 快速复习(附PDF+MD版本)

本篇文章是对于23种设计模式的一个全面的总结,受限于文章篇幅无法对每个设计模式做到全面的解析,但几乎每个设计模式都提供了案例和类图结构,非常适合快速复习和在学习设计模式之前的全预习把握。 💡文章的 pdf markdown 版本可通…

驱动开发执行应用层时报ELF: not found,syntax error: unexpected “(“错误

问题: 原因:在跨平台的时候注意我们使用的编译器,我是因为没有没有交叉编译导致的。 出问题之前使用的是gcc test_01_normal.c -o test_01_normal生成的文件,导致,执行时报ELF这种问题。 解决办法:arm-li…

将本地项目上传到 gitee 仓库

1、创建 gitee 仓库 到 gitee 官网,新建仓库 配置新建仓库 完成仓库的创建 项目上传到仓库 上传项目需要安装git git官方下载地址:git下载地址 安装完成,前往本地项目所在文件夹,右击选择 Git Bash Here 刚下载完成需要配置G…

粤嵌—2024/5/13—删除排序链表中的重复元素(✔)

代码实现: /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* deleteDuplicates(struct ListNode *head) {if (head NULL || head->next NULL) {return head;}struct ListNode *…

【计算机毕业设计】基于SSM+Vue的新能源汽车在线租赁管理系统【源码+lw+部署文档】

摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,新能源汽车在线租赁当然也不能排除在外。新能源汽车在线租赁是以实际运用为开发背景,运用软件工程开发方法&…

【Linux部署】【pig前端部署】Linux安装- docker/docker-compose/nginx (使用docker优雅部署nginx)

🌸🌸 Linux安装- docker/docker-compose/nginx 优雅部署 🌸🌸 一、一键安装jdk yum install -y java-1.8.0-openjdk.x86_64验证 二、安装docker yum list docker-ce --showduplicates | sort -rsudo yum install -y yum-utils …

Visual Studio和Visual Studio Code分清了? 都是IDE,可不是框架。

Visual Studio和VSCode两者都是 Microsoft 制造的IDE(集成开发环境)。尽管它们的名字相似,但它们的功能却大不相同。 一、什么是Visual Studio(VS) Visual Studio(简称VS)是由微软公司开发的一…

用go语言实现一个有界协程池

写在文章开头 本篇文章算是对go语言系列的一个收尾,通过go语言实现一个实现一个简单的有界协程池。 Hi,我是 sharkChili ,是个不断在硬核技术上作死的 java coder ,是 CSDN的博客专家 ,也是开源项目 Java Guide 的维护…

AIGC时代算法工程师的面试秘籍(2024.4.29-5.12第十三式) |【三年面试五年模拟】

写在前面 【三年面试五年模拟】旨在整理&挖掘AI算法工程师在实习/校招/社招时所需的干货知识点与面试方法,力求让读者在获得心仪offer的同时,增强技术基本面。也欢迎大家提出宝贵的优化建议,一起交流学习💪 欢迎大家关注Rocky…

引入安全生产培训云平台,实现“人人讲安全、个个会应急”

引入安全生产培训云平台,旨在全面提升企业及员工的安全意识与应急处理能力,通过数字化手段实现“人人讲安全、个个会应急”的目标。这一平台的构建和应用,不仅促进了安全知识的普及,还极大提高了培训的效率与效果。以下是该平台几…

Backend - postgresSQL DB 存储过程(数据库存储过程)

目录 一、存储过程的特性 (一)作用 (二)特点 (三)编码结构的区别 二、定时执行存储过程 三、2种编码结构 (一)函数结构 1. SQL代码 2. 举例 (1)例1-循…

邦之信短信分析:验证码短信、营销短信与通知短信的差异化解析

在数字通讯时代,短信已成为我们日常生活中不可或缺的一部分。其中,验证码短信、营销短信和通知短信各自扮演着不同的角色。今天,飞鸽将带您深入了解这三种短信类型之间的核心差异。 1. 验证码短信 验证码短信广泛应用于各类电商网站和…

【UE5.1 角色练习】07-AOE技能

目录 效果 步骤 一、准备技能动画 二、准备粒子特效 三、技能蓝图 四、相机震动 前言 在上一篇(【UE5.1 角色练习】06-角色发射火球-part2)基础上继续实现角色释放AOE技能的功能。 效果 步骤 一、准备技能动画 1. 在项目设置中添加一个操作映…