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,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux安全】Firewalld防火墙基础

目录 一、Firewalld概述 二、Firewalld和iptables的关系 三、Firewalld网络区域 1、firewalld防火墙预定义了9个区域: 2、firewalld 数据包处理原则 3、firewalld数据处理流程 4、firewalld检查数据包的源地址的规则 四、Firewalld防火墙的配置方法 1、firewalld 命令…

SpringBoot项目热部署-解决html修改后需要重启项目的问题

前言:启动热部署之后修改html无需再次重启项目,每次都要重新重启项目 2022IDEA以下版本 1、打开file->Settings->Compiler,勾选Build project automatically 2、按住ctrlshiftalt/ 选Registry进去吧app.running的勾打上、 2022IDEA及以上

NVIDIA Orin/Jetson 平台+数字同轴GMSL 车载AI视觉方案,应用于车载,机器人等领域

专注于成像和视觉技术于近期正式发布了可适配NVIDIA DRIVE AGX Orin平台的一系列摄像头产品,该产品是自主开发的数字同轴GMSL2摄像头模组,可满足智能汽车的高质量成像需求。 目前,推出可适配于NVIDIA DRIVE AGX Orin平台的摄像头产品一共有11…

Modular military character

角色具有31个模块化骨架网格,每个模块具有多个蒙皮: 3个头(4skins) 3件衬衫(9skins) 3条裤子(9skins) 3只靴子(9skins) 7件战术背心(3skins) 4只手和手臂(2skins) 3顶帽子和头盔(9skins) 2个背包(3skins) 3支步枪(3skins) 模块允许您组装超过200万个不同的…

Oracle按照主键排序分页sql

在Oracle数据库中,当你想要按照主键排序并进行分页查询时,可以使用以下两种方法: 1. 使用 ROWNUM 和子查询 在Oracle 12c及更早的版本中,ROWNUM 是常用的分页方法。但是,因为 ROWNUM 是在结果集产生之前分配的&#…

spring boot 之 集成 druid数据库连接池

spring boot版本:2.3.12.RELEASE MySQL版本:8.0 Druid简介 Druid是阿里开源的一个数据库连接池和SQL查询优化工具,用于提高应用程序对数据库的性能和可扩展性。主要提供的功能:数据库连接池、数据库连接池监控、SQL查询优化、数…

.NET 分享一款多种方式维持权限的工具

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

2024,java开发,已经炸了吗?

网友: 炸的透透的了,坐标南京。 一月底,一个好哥们,双休朝九晚六不加班18K,被裁。 入职不到两年,算是工资和年终奖才赔了6.5W左右。 上周五新公司入职,周六开始加班。现在每周134加班到晚上八…

Unity功能——通过按键设置物体朝左/右旋转(含C#转xlua版)

博文简介: 开发场景:unity的3d场景; 功能:当设定的键被按下时,进行物体朝左/右旋转; 适用范围:本文代码适用于设置3d物体朝左右旋转,也适用于设置UI对象朝左右旋转&#xf…

第22讲:RBD块存储COW克隆解除父子镜像的依赖关系

RBD块存储COW克隆解除父子镜像的依赖关系 1.COW镜像克隆存在的依赖关系 在前面使用copy-on-write机制基于快照做出来的链接克隆,与快照依赖性很强,如果快照损坏或者丢失,那么克隆的镜像将无法使用,使用这个镜像创建的虚拟机也会…

深度学习模型

深度学习模型 深度学习网络模型是人工智能领域的重要分支,它通过模拟人脑神经网络的工作方式来处理数据并识别模式。以下是对深度学习网络模型的一些主要类型的详细概述: 卷积神经网络(Convolutional Neural Network, CNN) 结构&a…

数据库模块名称汇总

1.Oracle。 2.SQLServer。

MyBatis中的Where标签:提升你的SQL查询效率

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 理解MyBatis的Where标签 MyBatis是一款优秀的持久层框架&#xff0c;它提供了许多强大的标签来帮助编写更优雅、高效的SQL语句。其中&#xff0c;<where>标签是使用频率极高的一个&#xff0c;它能够自动处理…

【分别介绍在vue2和vue3下如何使用ElementUI的图标组件,并举例说明】

在Vue 2和Vue 3下使用Element UI的图标组件&#xff0c;其方法和步骤有所不同。以下将分别进行介绍&#xff0c;并给出相应的示例。 Vue 2下使用Element UI的图标组件 安装Element UI 首先&#xff0c;你需要确保已经安装了Vue 2项目。然后&#xff0c;使用npm或yarn安装Eleme…

Mac配置node环境

1.下载nvm(node版本管理工具&#xff0c;同Anaconda对Python的关系&#xff09;。 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash 2.配置vi ~/.zshrc文件&#xff0c;添加如下配置&#xff1a; export NVM_DIR"$HOME/.nvm" [ -…

git生成公钥私钥

如果您在安装 Git 后没有看到 .ssh 目录,这是正常的。.ssh 目录并不是 Git 自动创建的,而是需要您手动创建和配置。 以下是一般的步骤: 打开您的终端或命令提示符。 检查是否已经生成了 SSH 密钥对: ls -al ~/.ssh如果看到 id_rsa 和 id_rsa.pub 文件,说明已经有 SSH 密钥对了…

pytest:指定测试用例执行顺序

在自动化测试中&#xff0c;测试用例的执行顺序有时对测试结果具有重要影响。本文将介绍如何在pytest框架中使用pytest-ordering插件以及Collection hooks来控制测试用例的执行顺序。 方式1&#xff1a; 使用pytest-ordering插件控制执行顺序 1.1 安装pytest-ordering插件 首…

生命在于学习——Python人工智能原理(1.1)

说明&#xff1a;今年学一部分人工智能方向的知识&#xff0c;网安也会穿插&#xff0c;看后续如何将二者结合起来。 一、人工智能的基本知识 1、人工智能的起源 1956年美国达特茅斯学院召开了一个夏季论班&#xff0c;首次提出人工智能的概念。 1950年图灵提出了图灵测试&a…

springboot + Vue前后端项目(第十二记)

项目实战第十二记 1.写在前面2. 整合Echarts2.1 vue安装Echarts2.2 使用Echarts2.3 EchartsController编写2.4 Home.vue编写 总结写在最后 1.写在前面 本篇主要讲解系统整合Echarts 2. 整合Echarts 2.1 vue安装Echarts npm i echarts -S2.2 使用Echarts vue中使用echarts的…

Thinkphp5内核宠物领养平台H5源码

源码介绍 Thinkphp5内核流浪猫流浪狗宠物领养平台H5源码 可封装APP&#xff0c;适合做猫狗宠物类的发信息发布&#xff0c;当然懂的修改一下&#xff0c;做其他信息发布也是可以的。 源码预览 源码下载 https://download.csdn.net/download/huayula/89361685