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','普通用户');