您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

oracle 函数

bubuko 2022/1/25 20:02:56 其他 字数 13169 阅读 680 来源 http://www.bubuko.com/infolist-5-1.html

字符函数 Initcap(char) --首字母大写 select initcap('nihao') from dual Lower(char) --转小写 select empno,lower(ename),lower(job) from emp Upper(char) --转大写 select ...

字符函数

技术分享图片

 

 

Initcap(char)

 

 

--首字母大写
select initcap(nihao) from dual

 

Lower(char)

--转小写
select  empno,lower(ename),lower(job) from emp

Upper(char)

--转大写
select upper(nihao) from dual

Ltrim(char,set):从左边开始 只要包换syz的 或者只包含单独的x,y,z的都去除掉(必须得在开头的)

--ltrim(从左边开始 )
select ltrim(xadyminyxz,xyz) from dual;

运行后:

技术分享图片

 

 

 Rtrim(char,set) :从右边开始 只要包含syz的 或者只包含单独的x,y,z的都去除掉(必须得在开头的)

--rtrim(从右边开始 )
select rtrim(xadyminyxz,xyz) from dual;

运行后:

技术分享图片

 

 

 Translate(char, from, to):吧第一个字符串j 替换成了b

Select translate(‘jack’,’j’ ,’b’) from dual; 

运行后:

技术分享图片

 

 

 Replace(char, searchstring,rep string):吧所有的j都换成了bl

Select replace(‘jack and jue’ ,’j’,’bl’) from dual;

运行后:

技术分享图片

 

 

 Instr (s1, s2 [,i ,j]:求j在i里是第几位字符串(这里从0开始)

Select instr (‘worldwide’,’d’) from dual;

运行后:

技术分享图片

 

 

 Substr (s, m, n) :从m开始 截取n个数值(从1开始)

Select substr(‘abcdefg’,3,2) from dual;

运行后:

技术分享图片

 

 

 最后一个是链接字符串

 

DECODE:逐个值替换

select ename,decode(deptno,10,运维部20开发部,30, 产品部)as deptno from emp

运行后:
技术分享图片

 

 

 数学函数:

技术分享图片

 

 

 abs:求绝对值

ceil:向上取整

cos:在数学中,COS称为(余弦函数),即余弦(三角函数的一种)。

Floor:向下取整

power:取次幂(例如4的2次方 就是16)

Mod:取余数(10÷3余1)

Round:四舍五入

Trunc:就是保留两位小数 没有四舍五入

Sqrt:平方根

日期函数:

技术分享图片

 

 

 

技术分享图片

 

 

 

--截取当前系统日期年份
select extract(year from sysdate) from dual
select extract(month from sysdate) from dual
select extract(day from sysdate) from dual

练习:

--获取emp表中每个人的工作年份
select ename,extract(year from sysdate)- extract(year from hiredate)as eate from emp

转换函数:

技术分享图片

 

 

 

--吧数值类型变成字符串
Select TO_CHAR(123,$9999) FROM DUAL;
--吧日期类型转成字符串

SELECT TO_CHAR(hiredate,YYYY"年"fmMM"月"fmDD"日" HH24:MI:SS) FROM emp;

运行后·:
技术分享图片

 

 技术分享图片

 

 其他函数:

技术分享图片

 

 如果这个表里的comm是空的话 就拿o去加 不然 null加任何值 都等于null 

--求每个员工的总工资(空值转换函数)

select ename,sal+nvl(comm,0) as ac from emp 

--如果为空的话 就取零 如果不为空就统一按照一千算
select ename,sal+nvl2(comm,1000,0) as ac from emp

nullif:

--如果左右两边的值相等 那么他的结果就是空 如果不为空 就默认取第一个值
select nullif(100,400) from dual

技术分享图片

 

 分析函数(排名函数):

技术分享图片

 

 一般大部分情况都使用第三种方法:

--分析函数(排名函数)
--没有并列
select EMP.*,ROW_NUMBER() over(order  by sal desc) as enum from emp
--有并列 但是没第三了 实际展位的
select EMP.*,rank() over(order  by sal desc) as enum from emp
--有并列 并且不会被站位 正常排名
select EMP.*,DENSE_RANK() over(order  by sal desc) as enum from emp

 

oracle 函数

原文:https://www.cnblogs.com/www1842564021/p/12565916.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶