Oracle函数集锦

2023-11-19

一、case when then 用法

case具有两种格式。简单case函数和case搜索函数。

--简单case函数
case sex
  when '1' then '男'
  when '2' then '女’
  else '其他' end
--case搜索函数
case when sex = '1' then '男'
     when sex = '2' then '女'
     else '其他' end 

这两种方式,可以实现相同的功能。简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限制,比如写判定式。

还有一个需要注重的问题,case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略。

--比如说,下面这段sql,你永远无法得到“第二类”这个结果
case when col_1 in ('a','b') then '第一类'
     when col_1 in ('a') then '第二类'
     else '其他' end  

二、oracle中trunc函数的简单使用

oracle中的trunc()函数是对时间类型或者数字进行截取操作的。
一般用法为trunc(Date,“fmt”),其中fmt 是我们要展示的时间字段,或者trunc(number),该函数表示取整。

trunc(Date)的用法一般有以下几种:

trunc(sysdate,'yyyy');//返回当前年的第一天
trunc(sysdate, 'mm');//返回当前月的第一天
trunc(sysdate, 'dd');//返回当前时间的年月日
trunc(sysdate, 'd');//返回当前星期的第一天
trunc(sysdate, 'hh');//返回当前小时

trunc(number)的用法一般有以下几种:

trunc(55.5,-1) = 50;//-1(负数)表示从小数点左边第一位截取后面全置为零;
trunc(55.55,1) = 55.5;//1(正数)表示小数点后面保留一位;
trunc(55.55) = 55;//截取整数部分;

三、Oracle中instr函数的应用以及详解
 

格式一:instr( string1, string2 )    /   instr(源字符串, 目标字符串)

格式二:instr( string1, string2 [, start_position [, nth_appearance ] ] )   /   instr(源字符串, 目标字符串, 起始位置, 匹配序号)

解析:string2 的值要在string1中查找,是从start_position给出的数值(即:位置)开始在string1检索,检索第nth_appearance(几)次出现string2。

  注:在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。只检索一次,也就是说从字符的开始到字符的结尾就结束。

2)实例

格式一

1 select instr('helloworld','l') from dual; --返回结果:3    默认第一次出现“l”的位置
2 select instr('helloworld','lo') from dual; --返回结果:4    即:在“lo”中,“l”开始出现的位置
3 select instr('helloworld','wo') from dual; --返回结果:6    即“w”开始出现的位置

格式二

1.select instr('helloworld','l',2,2) from dual;  --返回结果:4    也就是说:在"helloworld"的第2(e)号位置开始,查找第二次出现的“l”的位置
2 select instr('helloworld','l',3,2) from dual;  --返回结果:4    也就是说:在"helloworld"的第3(l)号位置开始,查找第二次出现的“l”的位置
3 select instr('helloworld','l',4,2) from dual;  --返回结果:9    也就是说:在"helloworld"的第4(l)号位置开始,查找第二次出现的“l”的位置
4 select instr('helloworld','l',-1,1) from dual;  --返回结果:9    也就是说:在"helloworld"的倒数第1(d)号位置开始,往回查找第一次出现的“l”的位置
5 select instr('helloworld','l',-2,2) from dual;  --返回结果:4    也就是说:在"helloworld"的倒数第1(d)号位置开始,往回查找第二次出现的“l”的位置
6 select instr('helloworld','l',2,3) from dual;  --返回结果:9    也就是说:在"helloworld"的第2(e)号位置开始,查找第三次出现的“l”的位置
7 select instr('helloworld','l',-2,3) from dual; --返回结果:3    也就是说:在"helloworld"的倒数第2(l)号位置开始,往回查找第三次出现的“l”的位置

 

四、Oracle中保留两位小数函数应用

(1)在写SQL的时候,直接保留两位小数 
(2)在java代码里面将查询出来的数进行格式化处理,保留两位小数 
先说第一种方案:在SQL中的处理 
我使用的oracle数据库,所以有3个函数可以选择,分别是: 
(1)ROUND(A/B,2) 
ROUND()函数是会将计算结果进行四舍五入的,如果所需要的值需要进行四舍五入,就可以选择这个函数,可以有一个参数,也可以有两个参数;如果有两个param,第一个是你的计算表达式,第二个是需要保留的小数位数。例子如下: 
这里写图片描述 
(2)TRUNC(A/B,2) 
TRUNC()函数是不会将计算结果进行四舍五入的,如果所需要的值不需要进行四舍五入,就可以选择这个函数,可以有一个参数,也可以有两个参数;如果有两个param,第一个是你的计算表达式,第二个是需要保留的小数位数。例子如下: 
这里写图片描述 
(3)TO_CHAR(A/B,’FM99990.99’) 
TO_CHAR()是一个格式化函数,第一个参数是计算表达式,第二个参数是指定格式化的格式,如果保留两位小数则小数点后写两个99,这里的数字9代表的数字,也是一个占位符,表示该位置上以后会是一个数字,为什么小数点前面会是一个0,而不是9,是因为如果计算结果小于1,那么只会显示小数点和小数点之后的部分,前面的0会忽略掉 
这里写图片描述 
这里写图片描述

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle函数集锦 的相关文章

随机推荐

  • 2023 年如何将您的应用提交到 App Store

    您夜以继日地工作来创建您的梦想应用程序 最后 是时候向全世界宣布您的应用程序了 但不知道如何将您的应用提交到 App Store 为您的商店获取现成的移动应用程序 将应用程序提交到 App Store 可能是一项复杂的任务 但在本指南的帮助
  • 揭开智能卡的面纱

    一 概述 ICC是Integrated Circuit Card的缩写 意思是集成电路卡 我们通常把它称为智能卡 Smart Card 智能卡应用广泛 它可以用来保存私人密码 银行账号 个人资料等 那么如何编写应用程序 从智能卡上读出或向其
  • RabbitMQ之交换机类型

    一 交换机类型 在 RabbitMQ 中 交换机主要用来将生产者生产出来的消息 传送到对应的队列中 即交换机是一个消息传送的媒介 其英文被称为 exchange 交换机在 RabbitMQ 中起着承上启下的作用 交换机主要有四种类型 dir
  • 卡尔曼滤波的推导

    与尔共勉 1 状态方程 其中为卡尔曼滤波估计值 也就是我们的目的值 我们要估计的也就是这个值了 为由K时刻得到K 1时刻的值 为系统的输入乘上一个系数 A为转移矩阵 为噪声 服从 2 测量方程 为测量误差 其服从正态分布 H为测量矩阵 3
  • 【Android 自定义 View】--> 双列时间轴

    不断学习 做更好的自己 视频号 CSDN 简书 欢迎打开微信 关注我的视频号 KevinDev 点我 点我 效果图 基类代码 适配器 BaseAdapter java Created on 2021 7 16 14 50 author Go
  • 计算机网络-协议栈分层

    1 划分网络层次的优缺点 优点 1 开发人员可以只关注整个结构中的某一层 2 可以很容易用新的实现替换原有层次中的实现 3 可以降低层与层之间的依赖 4 有利于标准化 5 利于各层逻辑的复用 缺点 1 一层可能冗余较低层的功能 例如许多协议
  • 【云原生

    本期文章是K8s第3篇 主要是实战Kubectl创建Deployment部署应用 通过本期文章 我们将学习创建在 Kubernetes 集群上运行应用程序的 Deployment 所需的最常见的 Kubectl 命令 在前期的文章中 已经介
  • 优惠券叠加规则、优惠分摊介绍

    本文主要介绍优惠券的叠加规则 下单结算时的优惠券分摊及优惠券核销细节 同时也会将上面提到的各种优惠券 以某宝下单的例子来讲解内容 对于优惠券的使用从场景不同可以分为 线上使用和线下使用 其实严格的讲两个方式最终的目的和结果都一样 1 线上使
  • OpenWRT命令

    系统信息 arch 显示体系结构 uname m 显示当前硬件平台的类型 uname r 显示使用的内核版本 dmidecode q 显示硬件系统组件 SMBIOS DMI hdparm i dev hda 显示硬盘特征 hdparm tT
  • Python循环结构

    while循环 如果不使用循环语句 就只能用下面的方法逐个输出单个字符 使用循环结构就可以更方便地遍历 username EMT print username 0 print username 1 print username 2 用下面的
  • windows下使用CMake构建工程:cmake-gui+Visual Studio

    文件结构 在工程目录下构建目录src thirdparty build src 存放自己写的源代码文件 thirdparty 存放使用的第三方库 build 存放编译时生成的文件 因为很多很杂乱 所以单独目录存放 保持项目文件夹整洁 在bu
  • 核方法、核密度估计与核函数

    核方法 核密度估计与核函数 核方法 Kernel Methods 是一类常用于机器学习和统计学中的非参数方法 主要用于特征转换和模式识别 核方法通过将数据映射到高维特征空间 使得线性不可分的问题在高维空间中变得线性可分 其中 核函数 Ker
  • 未来展望——学习规划

    不知不觉就来到了研二 找工作和科研两座大山压在身上 我的专业是机械设计及理论 主要研究的方向是新能源汽车电驱动系统设计 平时主要的工作就是先在Matlab Simulink里搭建出PMSM的控制模型 观测器模型等 再将其转化为C代码烧录到D
  • 什么是GPT?初学者如何使用GPT?GPT入门学习

    灵魂发问 GPT科研中没有那么神 GPT账号不能轻松使用 GPT怎样才融合到我的科研中 别人用的非常酷 为什么我用的不行 让GPT成为您的科研加速器 GPT对于每个科研人员已经成为不可或缺的辅助工具 不同的研究领域和项目具有不同的需求 如在
  • tp-wr886n虚拟服务器在哪,新版TP-LINK TL-WR886N默认登录地址是多少?【图解】

    新版TP LINK TL WR886N默认登录地址是多少 问 最近刚买的普联TP LINK新款无线路由器 请问tplink TL WR886N默认登录地址是多少 想要登录这台TL WR886N不知道管理IP地址如何登录呢 答 TP LINK
  • iOS进阶_kvc使用注意事项

    细节1 我们在项目中使用kvc 在设置model属性的时候 注意尽量不要使用基本数据类型 实例 数据模拟 注意age是null类型的 Person h import
  • robotframework安装使用

    一 Robot Framework 介绍 Robot Framework 是一款基于 Python 的功能自动化测试框架 它具备良好的可扩展性 支持关键字驱动 可以同时测试多种类型的客户端或者接口 可以进行分布式测试执行 主要用于轮次很多的
  • 解决问题方法汇总:ROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysq

    var lib mysql mysql sock 这个目录是my cnf中配置的 连接localhost通常通过一个Unix域套接字文件进行 即这个mysql sock文件 如果套接字文件被删除了 本地客户就不能连接 systemctl s
  • el-upload上传阿里云(oss上传)

    oss上传 在你的项目安装oss npm install ali oss save 初始化oss 配置文件 新建一个js文件 内容如下 代表你所申请的参数 问运维要 let OSS require ali oss export let cl
  • Oracle函数集锦

    一 case when then 用法 case具有两种格式 简单case函数和case搜索函数 简单case函数 case sex when 1 then 男 when 2 then 女 else 其他 end case搜索函数 case