Oracle常用函数

第三章:Oracle常用函数

一、Oracle字符函数

拼接字符串:

’||‘ 或者 ’concat‘拼接,concat只能写两个字符串,但是他可以嵌套,在嵌套;

-- '||'  拼接;可以写列名,也可以写固定字符串
select 'a' || 'b' from dual;
-- concat 拼接 只能写两个字符串;可以拼接在拼接;
select concat('a','b') from dual;
首字母大写

initcap 首字母大写,字母转大写 upper,字母转小写lower


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

-- 字母转小写
select lower("my name is AAA") from dual;

-- 字母转大写
select upper("my name is AAA") from dual;
截取字符串

截取字符串substr:substr(’截取原来的字符串‘,‘从第一位开始截取,第一个是1’,【截取长度,如果不写截取

到尾部】);

-- 截取字符串
select substr('你好,世界,哈哈',3,3) from dual;

replace 替换字符串: replace(‘替换的原来的字符串’,‘需要替换的字符串’,‘替换后的字符串,如果不写会将替换的字符串删除’)

-- 替换字符串
select replace('my name is sun','sun','guo') -- 如果替换后的字符串('guo')不写,那么原来的字符串'sun'将被删掉

去除左侧固定字符串ltrim:ltrim(‘原来的字符串’,‘删除掉的字符串’)如果删除掉的字符串不写,那么默认删除左边的空格

去除右侧固定字符串rtrim:rtrim(‘原来的字符串’,‘删除掉的字符串’)如果删除掉的字符串不写,那么默认删除右边边的空格

-- 删除左边空格
select ltrim('  AAA   ') from dual;
-- 删除左边的字符
select ltrim('**** AAAA   ') from dual;

-- 右边方法同上


去除左右两侧的空格trim:trim(‘字符串’)去除左右两边的空格;去除左侧’leading’,去除右侧trailing

-- 去除左右两边的空格;只能 去除左右两边的空格,不能去除中间的空格
select trim('  AAA   ') from dual;


-- trim去除左侧字符串  'leading'
select trim (leading '*' from '*****AAAA*****') from dual;

-- trim 去除右侧字符串 'trailing'
select trim (trailing '*' from '*****AAAA*****') from dual;

去除左右两边的字符串trim:trim(both ‘…’ from ‘… AAA …’) from dual; ltrim 和 rtrim 写到一起是和trim的效果一样;

-- 去除左右两边的字符串
select trim(both '*' from '*** aaa ***' ) from dual;

-- ltrim 和 rtrim 组合去掉左右两边的字符串;
select ltrim(rtrim('****AAAA****'),'*','*')from dual;

补全字符串lpad:lpad(‘需要补全的原来的字符串’,‘补到几位’,补什么)

-- 补全字符串  lpad('需要补全的原来的字符串','补到几位',补什么)
select lpad ('123',5,'1') from dual;

二、Oracle数学函数

-- ceil 向上取整
select ceil(4.1) from dual;
-- floor 向下取整
select floor(4.6) from dual;
-- trunc 按照一定的精度取数字
Select trunc(3.1415926,4) from dual;

三、Oracle日期函数

-- sysdate 获取系统当前日期
Select sysdate from dual;
-- 获取本月最后一天
select last_Day(sysdate) from dual;
-- 获取今年还有几天,还有几个月
-- to_Date(日期)字符串转换日期
select to_date('2020-2-23','yyyy-MM-dd') - sysdate from dual;
-- 获取月份之差
select months_between(to_date('2020-10-23','yyyy-MM-dd'),sysdate) from dual;
-- trunc 截取日期;直接写日期,代表保留年月日
Select trunc(sysdate) from dual;
-- trunc 获取当前的年份或者月份或者日;
select trunc(sysdate,'年or月or日') from dual;
-- add_months(sysdate,2) 进行月份的加减;
select add_months(sysdate,2) from dual;

四、Oracle转换函数

rowid(是一个伪列) ,oracle 修改结果集;
-- rowid oracle 修改结果集函数
select t.*,t.rowid from dept t;
select * from dept for update;
to_char:将日期或者数据装换为char类型
-- 将数字转换成固定格式的字符串
select to_Char(123456,'999,999,99,') from dual;
-- 将日期转换成固定格式的字符串;可以随意转换;时:hh24;分mi;秒ss
select to_char(sysdate,'yyyy') from dual;
2019-01-01 to_date
select to_Date('2019-01-01 15','yyyy-mm-dd hh24') from dual;
to_number将字符串转换成数字,统计,对非数字进行转换;
-- to_number 将字符串转换成数字
select to_number('123456') from dual;

五、Oracle聚合函数

max -- 最大值
min -- 最小值
sum -- 求和
avg -- 平均数
count -- 计算

六、Oracle其他函数

-- sys_guid 生成32位随机数,自动生成主键
Select sys_guid() from dual;

-- nullif 判断值是否相等,如果相等返回null,不相等输出第一个值
select nullif(sal,3000) from dual;

-- 条件取值 decode(列名,'值1','输出1',值2,输出2,,,,其他值)
select decode(deptno,20,'河南分部',30,'河北分部','不知道') from emp;

-- 判断值为空不为空 nvl (值1,值2) 若值1为null,返回值2,值1不为null返回值2;
select nvl(null,123) from dual; -- 输出null

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码不能跑我能跑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值