欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Oracle单行函数

程序员文章站 2022-05-30 12:16:02
...

Oracle的单行函数包括:
字符串函数、数值函数、日期函数、转换函数、通用函数

字符串函数

UPPER(列或字符串):转成大写函数
LOWER(列或字符串):转成小写函数
INITCAP(列或字符串):把字符串的第一个字母转换成大写
LENGTH(列或字符串):获取字符串长度
REPLACE(列或字符串,查找匹配的内容,替换的新内容):字符串替换

#将名字里A替换成B
select replace(name,upper('a'),'B') from User;
#消除空格
select repalce('hello world',' ','') from User; ##Oracle会识别空格
SUBSTR(列或字符串,开始点)或SUBSTR(列或字符串,开始点,结束点):截取字符串

数值函数

四舍五入操作

  • 保留的位数正数的时候对小数点之后的内容进行四舍五入
  • 负数是对小数点之前的那一位进行之后的内容进行四舍五入

ROUND(列或者数字)
ROUND(列或者数字,保留的位数)

截取小数

  • 小数位的逻辑和四舍五入的逻辑一样的
  • 截取之后的内容舍去

TRUNC(列或者数字)
TRUNC(列或者数字,小数位)

求余
MOD(列或者数字,列或者数字)
MOD(10,3)结果是1

日期函数

Oracle提供了一个虚表 dual (可用来查看用户、调用系统函数(也可以直接获取)、操纵序列、作为计算器)

#获取当前时间及其时间戳
select sysdate,systimestamp from dual;

#获取明天的时间
select sysdate+1 from dual;

#获取天数 
select name,sysdate-date from user;

#获取月数
select name,MONTHS_BETWEEN(system,date) from user;
#增加月数 获取下个月的日期
select ADD_MONTHS(sysdate,1) from dual;
#获取当前月的最后一天的日期
select LAST_DAY(sysdate) from dual;

#获取年数
select name,TRUNC(MONTHS_BETWEEN(system,date)/12) years from user;

#计算下一个周二的日期
select NEXT_DAY(sysdate,'星期二') from dual;

格式转换函数

转字符串函数
TO_CHAR(列或日期或数字)
TO_CHAR(列或日期或数字,转换格式)

#格式化日期(返回结果是字符串 而不是日期)
select TO_CHAR(SYSDATE,'yyyy-mm-dd'),TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss') from dual;

#查询二月份的员工
select * from user where TO_CHAR(date,'mm') = '02';

#将数字 按照货币的格式进行字符串输出
select  TO_CHAR(123456789,'l999,999,999,999,999') from dual;

转日期函数
可以将字符串转换成日期类型

select TO_DATE('1998-09-19','yyyy-mm-dd') from dual;

转数字函数
可以将字符串转换成数字

select TO_NUMBER('123') from dual;

通用函数

空值替换
NVL(列或null,为空的默认值)
如果列上的内容不是null,则使用列的数据;如果为null,则使用默认值。

select nvl(name,'user')from user;

多值判断(类似与switch)
decode (列,匹配内容,显示内容 …)

select decode(type,'root','管理员','user','普通用户');