Oracle学习笔记_常用函数篇

推荐一个学习视频:https://www.bilibili.com/video/BV1AX4y1T7KG?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click

1 字符函数

1.1 拼接字符串

#  拼接字符串
## 使用||
select 'a' || '-' || 'b' from dual;

## 使用concat函数
select concat(concat('a','-'),'b') from dual;

1.2 大小写转换

# 首字母大写
select initcap('my name is kiki') from dual;

# 全大写
select upper('my name is kiki') from dual;

# 全小写
select lower('my name is kiki') from dual;

1.3 字符串截取

# substr('原字符串','起始位置,1是第一个元素','截取长度')
select substr('my name is kiki',1,5) from dual;

1.4 字符串替换

# replace('源字符串','将被替换的字符串',['被替换后的字符串,如果不写,则是删除将被替换的字符串'])
select replace('my name is kiki','kiki') from dual;
select replace('my name is kiki','kiki','tony') from dual;

1.5 去除两侧字符串

# 去除空格
# 去除左侧字符 ltrim('源字符串',['左侧需要被去除的字符,不写则是去除左侧空格'])
select ltrim('   AAA   AAA   ') from dual;
select ltrim('   AAA   AAA   ',' ') from dual;
select ltrim('***AAA***AAA***','*') from dual;
# 去除右侧字符 rtrim('源字符串',['右侧需要被去除的字符,不写则是去除右侧空格'])
select rtrim('   AAA   AAA   ') from dual;
select rtrim('   AAA   AAA   ',' ') from dual;
select rtrim('***AAA***AAA***','*') from dual;
# 去除两侧字符 trim('源字符串',['需要被去除的字符,不写则是去除两侧空格'])
select trim('   AAA   AAA   ') from dual;
select trim(both ' ' from '   AAA   AAA   ') from dual;
select trim(both '*' from '***AAA***AAA***') from dual;
# 去除左侧字符
select trim(leading ' ' from '   AAA   AAA   ') from dual;
# 去除右侧字符
select trim(trailing ' ' from '   AAA   AAA   ') from dual;

1.6 自动补全函数

#  自动补全函数
## 左补全 lpad('源值','补全的长度','补全字符')
select lpad('1','5','0') from dual;
## 右补全 rpad('源值','补全的长度','补全字符')
select rpad('1','5','0') from dual;

2 数学函数

# 向上取整
select ceil(3.1) from dual;

# 向下取整
select floor(3.9) from dual;

# 精度截取 trunc(源值,[精度,如果不写,则取整])
select trunc(3.1415926,1) from dual;

# 四舍五入 round(源值,[精度,不写则为0,表示取整])
select round(3.15,1) from dual;

3 日期函数

# 获取系统日期
select sysdate from dual;
select trunc(sysdate) from dual;

# 查询本月最后一天
select last_day(sysdate) from dual;

# 字符转日期
select to_date('1997-07-09','yyyy-MM-dd') from dual;
# 1997-07-09 距离今天还有多少天
select trunc(sysdate) - to_date('1997-07-09','yyyy-MM-dd') from dual;
# 1997-07-09 距离今天还有多少月
select months_between(trunc(sysdate,'month'), trunc(to_date('1997-07-09','yyyy-MM-dd'),'month')) from dual;
# 查询两个月之后的今天
select add_months(trunc(sysdate),2) from dual;
# 查询两个月之前的今天
select add_months(trunc(sysdate),-2) from dual;
# 查询2022-04-29的两个月之前的今天
select add_months(to_date('2022-04-29','yyyy-MM-dd'),-2) from dual;


4 转换函数

# to_char
## 将数字转换成字符串
select to_char(123456789) from dual;
## 将数字转换成固定格式字符串
select to_char(123456789,'999,999,999') from dual;
## 将字符串转换成日期
### 12小时制
select to_char(sysdate,'yyyy-MM-dd hh:mi:ss') from dual;
### 24小时制
select to_char(sysdate,'yyyy-MM-dd hh24:mi:ss') from dual;

# 转换成数值
select to_number('123') from dual;

5 聚合函数

sum | avg | max | min | count

求和 | 求平均值 | 求最大值 | 求最小值 | 计数

select count(*),max(sal),min(sal),sum(sal),avg(sal) from scott.emp

6 其他函数

6.1 随机数

# sys_guid 生成32位随机数,常用来生成主键
select sys_guid() from dual;

6.2 判断两个值是否一致,一致则返回null

# nullif 查询,如果薪资为3000,返回null
select nullif(sal,3000) from scott.emp

6.3 decode

# 语法:decode(列名,value1,"输出1",value2,"输出2",value3,"输出3",...,'其他值')
select decode(deptno,20,'AAA',30,'BBB','do not know') from scott.emp;

6.4 判空

# nvl(列名,为空时要被设置的值)
select nvl(comm,0) from scott.emp

7 oracle函数大全(分类显示)

私聊可得,或者评论区,工具截图如下
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值