Oracle单行函数(字符,数值,日期,转换)

news2024/9/23 13:28:03

Oracle单行函数(字符,数值,日期,转换)
前言
1、字符函数
1.1大小写转换函数
1.2连接字符串X和concat(X,Y)
1.3ASCII码与字符转换
1.4返回字符串索引位置:instr(x,str)
1.5返回字符串长度:length()
1.6字符串替换:replace(X,old,new)
1.6字符截取:substr(str,start,lenth)
2、数值函数
2.1四舍五入函数:round()
2.2直接截取函数:trunc()
2.3求余数函数:mod()
2.4取绝对值:abs()
2.5大于x最近的整数值,或本身:ceil()
2.6小于x最近的整数值,或本身:floor()
2.7X的Y次幂:power(X,Y)
3、日期函数
4、转换函数
4.1日期转字符串:to_char()
4.2字符串转日期:to_date()
5、通用函数:nvl()

1、字符函数
接收字符输入返回字符或者数值,dual 是伪表

1.1大小写转换函数
---1. 把小写的字符转换成大小的字符
select upper('yes') from dual; 结果:YES
---2. 把大写字符变成小写字符
select lower('YES') from dual; 结果:yes

1.2连接字符串X和concat(X,Y)

select CONCAT('abc','efg') from dual;  结果:abcefg

1.3ASCII码与字符转换

--ASCII(x)返回字符X 的ASCII码
select ASCII('a') from dual;  结果:97
--CHR(x)接收一个ASCII码 返回一个字符
select CHR(65) from dual;     结果:A

1.4返回字符串索引位置:instr(x,str)
索引从1开始

select INSTR('abcefg123','123') from dual;  结果:7


1.5返回字符串长度:length()

select LENGTH('abcefg123') from dual;  结果:9

1.6字符串替换:replace(X,old,new)

--REPLACE(X,old,new)在X中查找old,并替换成new
select REPLACE('abc882388','88','666') from dual;  结果:abc66623666


1.6字符截取:substr(str,start,lenth)

--REPLACE(X,old,new)在X中查找old,并替换成new
--返回X的字串,从start处开始,截取length个字符,缺省length,默认到结尾
select 
SUBSTR('abcdefg', 4, length('abcdefg')) from dual;结果:defg


2、数值函数
2.1四舍五入函数:round()

---1. 四舍五入函数:ROUND()
---默认情况下 ROUND 四舍五入取整,可以自己指定保留的位数。
---保留位数为负数,即往前保留几位数
select round(26.16    ) from dual; 结果:26
select round(26.16,  1) from dual; 结果:26.1
select round(26.16, -1) from dual; 结果:30
select round(26.16, -2) from dual; 结果:0
select round(56.16, -2) from dual; 结果:100


2.2直接截取函数:trunc()

---直接截取,不在看后面位数的数字是否大于5.
select trunc(56.56    ) from dual;  结果:56
select trunc(56.16, 1) from dual;   结果:56.1
select trunc(56.16, -1) from dual;  结果:50

2.3求余数函数:mod()

---求余数
select mod(10, 3) from dual;  结果:1

2.4取绝对值:abs()

select abs(-1) as a from dual;  结果:1

2.5大于x最近的整数值,或本身:ceil()

select CEIL(3.00001) as a from dual;  结果:4

2.6小于x最近的整数值,或本身:floor()

select FLOOR(2.9999999) as a from dual;   结果:2

2.7X的Y次幂:power(X,Y)

select POWER(3,4) as a from dual;  结果:81

3、日期函数
Oracle 中提供了很多和日期相关的函数,包括日期的加减,在日期加减时有一些规律
日期 – 数字 = 日期
日期 + 数字 = 日期
日期 – + 日期 = 数字 (可直接加减,单位是天)

----查询出emp表中所有员工入职距离现在几天。
select sysdate-e.hiredate from emp e;                     结果:以天为单位的小数
----算出明天此刻
select sysdate+1 from dual;                               结果:2020/12/4 16:35:36
----查询出emp表中所有员工入职距离现在几月。
select months_between(sysdate,e.hiredate) from emp e;     结果:以月为单位的小数
----查询出emp表中所有员工入职距离现在几年。
select months_between(sysdate,e.hiredate)/12 from emp e;  结果:以年为单位的小数
----查询出emp表中所有员工入职距离现在几周。
select round((sysdate-e.hiredate)/7) from emp e;          结果:以周为单位的小数

4、转换函数
4.1日期转字符串:to_char()

---日期转字符串
select to_char(sysdate, 'yyyy-mm-dd hh:mi:ss') from dual;        结果:2020-12-04 05:18:03    12小时有0
select to_char(sysdate, 'fm yyyy-mm-dd hh:mi:ss') from dual;     结果:2020-12-4 5:18:32      12小时无0
select to_char(sysdate, 'fm yyyy-mm-dd hh24:mi:ss') from dual;   结果: 2020-12-4 17:18:47    24小时无0
可以使用 TO_CHAR 函数来拆分年月日
select empno,ename
       to_char(hiredate,'yyyy') 年,
       to_char(hiredate,'mm') 月,
       to_char(hiredate,'dd') 日
from emp;

select empno,ename
       to_char(hiredate,'yyyy-mm-dd') 日
from emp;

 

to_char(number,‘L999,999.99’)
L代表货币符号,代表千位数分隔符.代表小数位分隔符

select to_char(123456.99,'L999,999.99') from dual;   结果:          $123,456.99

4.2字符串转日期:to_date()
---字符串转日期

select to_date('2020-12-4 17:18:47', 'fm yyyy-mm-dd hh24:mi:ss') from dual;


5、通用函数:nvl()

---算出emp表中所有员工的年薪(奖金+12个月 月薪)
select e.sal*12 from emp e;                  结果:12个月 月薪
---奖金里面有null值,如果null值和任意数字做算术运算,结果都是null。
select e.sal*12+e.comm from emp e;           结果:有员工结果为空
---如果 e.comm 为空,则正常相加;e.comm 为 null,则用 0取代 e.comm
select e.sal*12+nvl(e.comm, 0) from emp e;   结果:正常查询员工年薪

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

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

相关文章

使用Plotly创建自定义指标图表

大家好,使用Plotly可以创建和自定义指标图表,本文中将介绍如何使用Plotly库创建指标图表的具体操作步骤。 Plotly简介 Plotly是一个强大的数据可视化工具,允许我们使用Python创建各种交互式绘图和图表。在Plotly提供的无数类型的图表中&…

【MySQL】MySQL里程碑

个人主页:【😊个人主页】 系列专栏:【❤️MySQL】 文章目录 时间表从产品特性的角度梳理其发展过程中了解MySQL里程碑事件 时间表 从产品特性的角度梳理其发展过程中了解MySQL里程碑事件 1995年,MySQL 1.0发布,仅供内…

【LeetCode周赛】2022上半年题目精选集——贪心

文章目录 2136. 全部开花的最早一天(贪心)⭐⭐⭐⭐⭐思路代码语法解析:Integer[] id IntStream.range(0, plantTime.length).boxed().toArray(Integer[]::new); 2141. 同时运行 N 台电脑的最长时间(贪心)⭐⭐⭐⭐⭐解…

一分钟带你创建百万测试数据,玩转软件测试

准备测试数据是软件测试中非常重要的一个环节,无论是手工测试、动化测试还是性能测试,生成大量测试数据以评估性能是一项重要任务。 然而,寻找合适的测试数据并确保其质量常常是一项繁琐且耗时的工作。 先来看一下准备测试数据常见的四类方法…

Vue 实时显示时间

Vue 实时显示时间 getNowTime() {setInterval(() > {const date new Date();var year date.getFullYear();var month (date.getMonth() 1).toString().padStart(2, "0");var day date.getDate().toString().padStart(2, "0");var hours date.ge…

人工智能商业变现途径,并介绍详细公司案列

目录 1. 推荐系统:2. 智能广告和营销:3. 聊天机器人和虚拟助手:4. 自动化和机器人化:5. 数据分析和预测:6. 机器视觉和图像识别:7. 金融科技(FinTech):8. 医疗诊断和健康…

【成长之路】nginx配置https遇到的一系列问题

问题一:拿到手的文件并没有网上说的crt和key,而是一个cer、key和csr 按照网上说的,将cer转成pem文件,配置之后确实好使了 server {listen 443 ssl;ssl_certificate /opt/nginx/conf/域名.cer;ssl_certificate_key /opt/nginx/co…

诚迈科技董事长、统信软件董事长王继平出席全球数字经济大会

7月5日,2023全球数字经济大会“数字未来新一代软件产业高质量发展论坛”在北京大兴隆重举行。论坛以“数字新高地,数创兴未来”为主题,共同探讨产业升级新路径,凝聚数字经济合作新共识,构建数字产业集聚发展新高地。诚…

python接口自动化之DDT数据驱动测试

一、简单介绍 DDT(Date Driver Test),所谓数据驱动测试,简单来说就是由数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变。通过使用数据驱动测试的方法,可以在需要验证多组数据测试场景中&…

YApi-高效、易用、功能强大的可视化接口管理平台——(二)YApi 分组权限

YApi 分组权限 认识 YApi角色划分项目权限分组权限分组操作创建分组项目列表添加成员分组删除 认识 YApi YApi 是一个开源的接口管理平台,可以方便地管理和测试 API 接口,支持接口文档自动生成、Mock 数据生成、接口测试和接口监控等功能。YApi 支持多人…

TCP 协议报文

TCP 提供面向连接的通信传输,面向连接是指在传送数据之前必须先建立连接,数据传送完成后要释放连接。无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP协议提供可靠的连接服务,连接…

ATFX国际:大非农数据来袭,美国劳动力市场需求或空前旺盛

ATFX国际:昨日晚间公布的ADP数据震惊市场,新增就业人口高达49.7万人,而预期值仅为22.8万人,前值也只有26.7万人。公布值约为预期值和前值的总和。 ▲ATFX图 ADP数据是非农就业报告的前瞻指标,前者表现亮眼&#xff0c…

vue 表单校验不通过问题

记录 vue element 表单验证有值但验证失败问题 <el-form ref"form" :model"form" :rules"rules" class"baseForm"label-width"160px"><div class"sub-body"><el-row><el-col :span"24…

simulink 查表模块lookup table

一维查表 及样条曲线 或者m脚本 clear; x [1 2 3 4 5]; y [1 3 5 3 1];%二维表格 x1 [1 2 3]; x2 [1 2 3 4 5]; y2 [1 2 3 4 5; 6 7 8 9 10; 11 12 13 14 15];%三维表格 k1 [1 2 3]; k2 [1 2 3]; k3 [1 2 3 4 5];for i 1:1:3for j 1:1:3for k 1:1:5y3(i,j,k) ijk;…

数学建模常用算法之Logistic回归

数学建模常用算法之Logistic回归 目录一元回归一元线性回归一元非线性回归 多元回归逐步回归logistic回归 目录 一元回归 一元线性回归 最小二乘法 设&#xff1a; ybxa即可求得 %% 输入数据 clc, clear all, close all x[23.80,27.60,31.60,32.40,33.70,34.90,43.20,52.80…

Zabbix 的使用

Zabbix 的使用 一、添加 zabbix 客户端主机1.1 环境准备1.2 服务端和客户端都配置时间同步1.3 服务端和客户端都设置 hosts 解析1.4 设置 zabbix 的下载源&#xff0c;安装 zabbix-agent21.5 修改 agent2 配置文件1.6 启动 zabbix-agent21.7 在服务端验证 zabbix-agent2 的连通…

粮油溯源系统源码 全流程可视化质量溯源系统源码

粮油质量溯源系统源码 粮油溯源系统是从种植到加工、包装、库存、物流、销售、售出、异常反馈的全流程可视化质量溯源系统。 粮油安全关系千千万万消费者的健康问题。近年来&#xff0c;许多食品行业安全事故频频涌现&#xff0c;成为社会关注焦点。粮油做为人们生活饮食中的…

jpa使用uuid策略后无法手动设置id的问题

实体对象定义如下&#xff1a; Data Entity Table(name "sys_user") public class UserDO {/** 用户id */IdGenericGenerator(name "uuid", strategy "org.hibernate.id.UUIDGenerator")GeneratedValue(generator "uuid")Column(…

linux ifconfig: command not found

ifconfig 报 -bash: ifconfig: command not found 此时我们查看 /sbin 目录&#xff0c;会发现他是没有 ifconfig 相关文件的 ls | grep ifconfig # 查看不到相关文件 ip addr 后显示 ens33没有ip地址 发现 ens33 没有 inet 这个属性&#xff0c;那么就没法通过IP地…

【Distributed】分布式监控系统zabbix应用(二)

文章目录 一、部署 Zabbix 代理服务器1. 分布式监控的作用2. 部署过程2.1 设置 zabbix 的下载源&#xff0c;安装 zabbix-proxy2.2 部署数据库2.3 导入数据库信息2.4 修改 zabbix-proxy 配置文件2.5 启动 zabbix-proxy2.6 在所有主机上配置 hosts 解析2.7 在 Web 页面配置 agen…