当前位置: 首页 > news >正文

ORACLE函数

1 数值函数

1.1 MOD函数

  • 语法:mod(n1,n2)

n1除以n2取余,n2=0时返回n1

select mod(24,5) from dual;
select mod(24,0) from dual;

1.2 ROUND函数

  • 语法:round(n1[,n2])

n1:表示一个数字
n2:表示四舍五入后保留小数的位数,可以为负数,不写默认为0

select trunc(23.56) from dual;
select trunc(23.56,1) from dual;
select trunc(23.56,-1) from dual;

1.3 TRUNC函数

  • 语法:trunc(n1[,n2])

n1:表示一个数字
n2:表示小数点后截取的位数,可以为负数,不写默认为0

select trunc(23.56) from dual;
select trunc(23.56,1) from dual;
select trunc(23.56,-1) from dual;

2 字符型函数

2.1 LOWER函数

  • 语法:lower©

将字符串c内所有字符变为小写

select lower('WhaT is tHis') from dual;

2.2 UPPER函数

  • 语法:upper©

将字符串c内所有字符变为大写

select upper('WhaT is tHis') from dual;

2.3 LPAD函数

  • 语法:lpad(c1,n[,c2])

c1:表示一个字符串
n:表示从左向右截取字符的长度
c2:表示长度不足时,在左侧用于补齐的字符,不写默认为空格

select lpad('WhaT is tHis',6) from dual;
select lpad('WhaT is tHis',30) from dual;
select lpad('WhaT is tHis',30,'*') from dual;

2.4 RPAD函数

  • 语法:rpad(c1,n[,c2])

c1:表示一个字符串
n:表示从左向右截取字符的长度
c2:表示长度不足时,在右侧用于补齐的字符,不写默认为空格

select rpad('WhaT is tHis',6) from dual;
select rpad('WhaT is tHis',30) from dual;
select rpad('WhaT is tHis',30,'*') from dual;

2.5 TRIM函数

  • 语法:trim([leading||trailing||both] c2 from c1)

leading:只去除头部
trailing:只去除尾部
both:头尾都去除,默认选项,可以不写
c1:表示一个字符串
c2:表示要去除的字符,长度只能为1

select trim('W' from 'WhaT is tHis wW') from dual;
select trim(leading 'W' from 'WhaT is tHis wW') from dual;
select trim(trailing 'W' from 'WhaT is tHis wW') from dual;

2.6 LTRIM函数

  • 语法:ltrim(c1[,c2])

c1:表示一个字符串
c2:表示要从左侧截取掉的字符,不写默认为空格

select ltrim('hhWWhhshhhaT is tHis wW','Wh') from dual;

2.7 RTRIM函数

  • 语法:rtrim(c1[,c2])

c1:表示一个字符串
c2:表示要从右侧截取掉的字符,不写默认为空格

select rtrim('hhWWhhshhhaT is tHis wW','Wh') from dual;

2.8 REPLACE函数

  • 语法:replace(c1,c2[,c3])

将字符串c1中的c2替换为c3,c3为空表示删除

select replace('hhWWhhshhhaT is tHis wW','W') from dual;
select replace('hhWWhhshhhaT is tHis wW','W','-') from dual;

2.9 SUBSTR函数

  • 语法:substr(c1,n1[,n2])

c1:表示一个字符串
n1:表示开始截取的位置,可以为负数,但必须小于字符串长度
n2:表示长度,必须大于0,不写默认到最后

select substr(1234567890,4) from dual;
select substr(1234567890,4,3) from dual;
select substr(1234567890,-4,3) from dual;

2.10 INSTR函数

  • 语法:instr(c1,c2[,n1][,n2])

c1:表示一个字符串
c2:表示要查找的字符串
n1:表示开始查找的位置,大于0总左向右,小于0从右向左,不写默认为1
n2:表示要匹配的是查找到的第几个,必须大于0,不写默认为1

select instr('abcdedcbabcd','c') from dual;
select instr('abcdedcbabcd','c',4) from dual;
select instr('abcdedcbabcd','c',4,2) from dual;

2.11 LENGTH函数

  • 语法:length©

返回字符串c的长度

select length('abcd字符串') from dual;
select length('') from dual;

3 日期函数

3.1 CURRENT_DATE函数

返回当前系统所在时区的默认时间

select current_date from dual;

3.2 SYSDATE函数

功能与CURRENT_DATE相同,返回当前系统所在时区的默认时间

select sysdate from dual;

3.3 ADD_MONTHS函数

返回指定日期月份+n后的日期

  • 语法:add_months(日期,月份差)
select add_months(sysdate,12),add_months(sysdate,-12) from dual;
select add_months('31-8月-2025',1) from dual;

3.4 LAST_DAY函数

返回指定日期所在月的最后一天

select last_day(sysdate) from dual;
select last_day('23-2月-2020') from dual;

3.5 NEXT_DAY

返回指定日期之后的第一个星期的第n天

  • 语法:next_day(d,n)
select next_day(sysdate,5) from dual;
select next_day(sysdate,'星期四') from dual;
select next_day('1-8月-2025',7) from dual;

3.6 MONTHS_BETWEEN函数

返回两个日期之间的月份差

  • 语法:months_between(d1,d2)
select months_between(sysdate,add_months(sysdate,-1)) from dual;
select months_between(sysdate,add_months(sysdate,1)) from dual;
select months_between('1-9月-2025','31-8月-2025') from dual;

3.7 ROUND函数

对当前日期进行四舍五入到指定精度,不写fmt默认精度为日

  • 语法:round(d[,fmt])
select round(sysdate) from dual;
--设置精度为小时
select round(sysdate,'HH24') from dual;
--设置精度为分钟
select round(sysdate,'mi') from dual;

3.8 TRUNC函数

对日期进行裁断,不写fmt裁断单位为日

  • 语法:trunc(d[,fmt])
--设置裁断单位为24小时制的小时
select trunc(sysdate,'HH24') from dual;
--设置裁断单位为分钟
select trunc(sysdate,'mi') from dual;

4 转换函数

将指定字符从一种类型转换为另一种,通常这类函数遵循如下惯例:函数名称后面跟着待转换类型以及输出类型。

4.1 TO_CHAR函数

4.1.1 转换字符

将nchar,nvarchar2,clob,nclob类型转换为char类型

  • 语法:to_char©
select to_char('AABBCC') from dual;

4.1.2 转换时间

将指定的时间按照指定格式转换为varchar2类型

  • 语法:to_char(日期,格式)
select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') from dual;
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

4.1.3 转换数值

将指定数值n按照指定格式fmt转换为varchar2类型

  • 语法:to_char(数值,格式)
--L货币符号,G999千位分隔符逗号,D99两位小数
select to_char(1000,'L99G999D99MI') from dual;
--L货币符号,最大支持4位整数和2位小数
select to_char(1000,'L9999.99') from dual;

4.2 TO_DATE函数

将char,nchar,varchar2,nvarchar2字符串转换为日期类型

  • 语法:to_date(日期,格式)
select to_date('2025-08-01 11:03:09','yyyy-mm-dd hh24:mi:ss') from dual;
insert into emp(EMPNO,HIREDATE,sal) values(2,to_date('1982-2-5','yyyy-mm-dd'),1000);

4.3 TO_NUMBER函数

将char,nchar,varchar2,nvarchar2型字串按照fmt中指定格式转换为数值

select to_number('-100.00', '9G999D99') FROM DUAL;

5 其它辅助函数

5.1 DECODE函数

exp做为初始参数,s做为对比值,相同则返回r,default作为默认返回值

  • 语法:decode(exp,s1,r1,s2,r2…,r[,default])
select decode ('a2','a1','true1','a2','true2','default') from dual;

5.2 GREATEST函数

返回序列中的最大值

  • 语法:greatest(n1,n2,…nn)
select greatest(15,6,56,31) "Greatest" from dual;

5.3 LEAST函数

返回序列中的最小值

  • 语法:least(n1,n2,…nn)
select least(15,6,56,31) "LEAST" from dual;

5.4 NULLIF函数

相同返回c1,不同返回空

  • 语法:nullif(c1,c2)
select nullif('a','b'),nullif('a','a') from dual;

5.5 NVL函数

c1不为空返回c1,为空返回c2

  • 语法:nvl(c1,c2)
select nvl('a','b') from dual;
select nvl(null,'b') from dual;

5.6 NVL2函数

c1不为空返回c2,为空返回c3

  • 语法:nvl2(c1,c2,c3)
select nvl2('a','b','c') from dual;
select nvl2(null,'b','c') from dual;

6 数值型函数

6.1 ABS函数

返回数字的绝对值

  • 语法:abs(n)
select abs(-15.03) from dual;

6.2 COS函数

余弦函数

  • 语法:cos(n)
select cos(-2) from dual;

6.3 ACOS函数

反余弦函数 -1<= n <=1

  • 语法:acos(n)
select acos(-0.9) from dual;
select acos(-1) from dual;

6.4 BITAND函数

两个数字的进制按位与

  • 语法:bitand(n1,n2)
select bitand(6,12) from dual;

6.5 CEIL函数

大于等于n的最小整数,向上取整

  • 语法:ceil(n)
select ceil(18.3) from dual;
select ceil(-18.3) from dual;

6.6 FLOOR函数

小于等于n的最大整数,向下取整

  • 语法:floor(n)
select floor(18.9) from dual;
select floor(-18.9) from dual;

6.7 BIN_TO_NUM函数

二进制转十进制,n的值只能为0或1

select bin_to_num(1) from dual;
select bin_to_num(1,1) from dual;
select bin_to_num(1,0,0,1) from dual;

6.8 SIN函数

正弦函数

  • 语法:sin(n)
select sin(3) from dual;

6.9 SINH函数

双曲正弦函数

  • 语法:sinh(n)
select sinh(3) from dual;

6.10 ASIN函数

反正弦函数 -1<=n<=1

  • 语法:asin(n) 反正弦值
select asin(0.3) from dual;

6.11 TAN函数

正切函数

  • 语法:tan(n)
select tan(0.3) from dual;

6.12 TANH函数

双曲正切函数

  • 语法:tanh(n)
select tanh(0.3) from dual;

6.13 ATAN函数

反正切函数

  • atan(n)
select atan(0.3) from dual;

6.14 EXP函数

e的n次幂

  • 语法:exp(n)
select exp(3) from dual;

6.15 LN函数

n的自然对数 n>0

  • 语法:ln(n)
select ln(0.9) from dual;

6.16 LOG函数

以n1为底n2的对数 n1>0且n1!=1,n2>0

  • 语法:log(n1,n2)
select log(2,8) from dual;

6.17 POWER函数

n1的n2次方

  • 语法:power(n1,n2)
select power(2,3) from dual;

6.18 SIGN函数

n<0返回-1,n>0返回1,n=0返回0

  • 语法:sign(n)
select sign(3),sign(-3),sign(0) from dual;

6.19 SQRT函数

n的平方根

  • 语法:sqrt(n)
select sqrt(9) from dual;
http://www.dtcms.com/a/309096.html

相关文章:

  • JVM垃圾回收算法和分代收集算法的区别
  • 插件升级:Chat/Builder 合并,支持自定义 Agent、MCP、Rules
  • 深度学习(鱼书)day08--误差反向传播(后三节)
  • Day 28:类的定义和方法
  • 属性的运用和理解
  • 赛博算命之八字测算事业运势的Java实现(四柱、五行、十神、流年、格局详细测算)
  • Redisson实现Redis分布式锁的原理
  • Windows和Linux的tree工具
  • 【智能协同云图库】第七期:基于AI调用阿里云百炼大模型,实现AI图片编辑功能
  • 渗透测试报告通常包含哪些关键内容?
  • redis快速部署、集成、调优
  • Linux通用SPI作为Master——回环测试
  • Redis学习-----Redis的基本数据类型
  • Dify版本升级实操
  • Edge中如何找到原IE浏览器的Internet选项
  • 基于html,css,jquery,django,lstm,cnn,tensorflow,bert,推荐算法,mysql数据库
  • 8月1日RED指令强制生效,您的设备准备好了吗?
  • uniapp 开发微信小程序,获取经纬度(uni.getLocation)并且转化详细地址(‌高德地图逆地理编码API、‌腾讯地图逆地理编码)
  • 【华为机试】127. 单词接龙
  • Python match-case 模式匹配详解
  • 【Mysql】字段隐式转换对where条件和join关联条件的影响
  • 【Java面试题】缓存穿透
  • 什么是doris
  • 优化网站域名的SEO策略指南
  • Qt开发中的安全技术问题详解
  • MySQL(172)如何进行MySQL的全局变量设置?
  • 深度揭秘端口映射:原理、场景、路由映射故障,与内网IP端口映射外网工具的选择
  • 微服务消息队列之RabbitMQ,深入了解
  • 逻辑斯蒂回归的模型优化
  • IO流-文件实例