oracle中的函数
这些函数可以用在select where having  order by这些关键词后,
起着对某个常量或者某列数据进行相应的转化后在进行使用
例如
select ename,sal,round(sal,-2) from emp  where round(sal,-2)>=3000;
通过使用这些函数,可以帮助我们实现满足一些特殊要求的查询数学函数

 

数学函数

round:使用格式为  round(n[,m])其中[] 中的内容可以省略
select round(123.456),round(123.456,1),round(123.456,2),round(123.456,-1) from dual;
结果为
ROUND(123.456) ROUND(123.456,1) ROUND(123.456,2) ROUND(123.456,-1)
-------------- ---------------- ---------------- -----------------
           123            123.5           123.46               120

后面的参数指定了返回值的精度,或者说是从小数点第几位开始四舍五入,
如果不带后面的参数,则默认为四舍五入取整数,该例子中采用的是常量,
from后用的是dual,在上一篇文章中介绍了dual这个表,这个表只有一行数据,
上面的sql只有一行需要返回,返回的内容由select关键字决定,在实际应用中,参数可以是一个列名,例如
select round(sal,-2) ,ename from emp;

ceil:使用格式  ceil(n) 
select ceil(10.9),ceil(10.123) from dual;
结果为
CEIL(10.9) CEIL(10.123)
---------- ------------
        11           11
ceil函数的作用是将n的小数部分舍掉,整数部分加1

floor:格式floor(n)
select floor(10.9),floor(10.123) from dual;
结果为
FLOOR(10.9) FLOOR(10.123)
----------- -------------
         10            10
与ceil不同的是该函数是将n的小数部分舍掉,整数部分不变。
在英文中ceil是天花板的意思,floor是地板的意思,
在oracle的函数中,ceil是"向上"取整数,而floor是"向下"取整数,这应该跟英文意思多少有点关系吧

abs:格式abs(n)
select abs(-1),abs(0),abs(1) from dual;
结果为
   ABS(-1)     ABS(0)     ABS(1)
---------- ---------- ----------
         1          0          1
abs函数的作用是取得n的绝对值

sign:格式  sign(n)
select sign(0),sign(100),sign(-100) from dual;
结果是
   SIGN(0)  SIGN(100) SIGN(-100)
---------- ---------- ----------
         0          1         -1

sign函数的规则是n≥0,sign(n)=1; 当n<0, sign(n)=-1

sqrt:格式sqrt(n)
select sqrt(4),sqrt(9.9) from dual;
结果是
   SQRT(4)  SQRT(9.9)
---------- ----------
         2 3.14642654

sqrt的作用是取得n的平方根

exp:格式exp(n)
select exp(0) ,exp(1) from dual;
结果是
    EXP(0)     EXP(1)
---------- ----------
         1 2.71828183
exp函数的作用是求e的n次幂的值

ln和log:格式ln(n)   log(m,n)
select ln(1),log(10,100) from dual;
结果是
     LN(1) LOG(10,100)
---------- -----------
         0           2
这两个函数中ln为自然对数,log(m,n)是以m为底求n的对数

power:格式  power(m,n)
select power(3,2),power(3,3) from dual;
结果是
POWER(3,2) POWER(3,3)
---------- ----------
         9         27

该函数的作用是求m的n次幂

mod:格式mod(m,n)
select mod(10,6),mod(1,2) from dual;
结果是
 MOD(10,6)   MOD(1,2)
---------- ----------
         4          1
该函数的作用是m/n的余数

出了上面的函数oracle还提供了sin(n)  cos(n)  tan(n)
  asin(n)  acos(n)  atan(n)
sinh  cosh tanh这些三角函数,功能和数学中的一样,用法与上面所提到的方法基本一样

文本函数

oracle中的文本操作函数或者说是字符串操作函数如下
length(s)
ascii(s)
chr(n)
upper(s)
lower(s)
initcap(s)
ltrim(s[,k]
rtrim(s[,k])
trim([[option][c from ]]s)
lpad(s,n[,k])
rpad(s,n[,k])
substr(s,n[,m])
instr(s,k)
instr(s,k,n)
instr(s,k,n,m)
translate(s,v,m)
replace(s,v)
resplace(s,v,w)
concat(s1,s2)

length(s)
select ename ,length(ename) from emp;
该函数的作用是返回字符串参数s的长度

ascii(s)
select ename ,ascii(ename) from emp;
该函数的作用是返回字符串参数s的第一个字符对应的ascii码值
chr(n)
select chr(65),chr(97) from dual;
结果
C C
- -
A a
该函数的作用是返回在ascii码中参数n对应的字符

upper(s)和lower(s)
select ename,upper(ename),lower(ename) from emp;
这两个函数的作用分别是将参数s全部转换成大写和小写字母

initcap(s)
select ename,initcap(ename) from emp;
该函数的作用是将参数s的第一个字符转换成大写

ltrim(s[,k]和rtrim(s[,k])
select ename,ltrim(ename,'K'),rtrim(ename,'K') from emp;
ltri(s,k)的作用:首先取得参数s的第一个字符,判断是否为字符k,如果是则
将k剪掉,再取第二个字符判断是否是k,如果是则剪掉继续判断,如果不是则结束判断
返回结果,如果不带参数k那么默认是去掉参数s左边的空格
rtrim(s[,k])是从参数s的右边开始判断

trim([[option][c from ]]s)  option=leading ,trailing,both
select
'  aabb  '  ,
trim('  aabb  '),
trim(both from '  aabb  '),
trim(leading from '  aabb  '),
trim(trailing from '  aabb  '),
trim(leading 'a' from 'aabbaa'),
trim(trailing 'a' from 'aabbaa'),
trim(both 'a' from 'aabbaa') from dual;
结果是
'AABB'   TRIM TRIM TRIM(L TRIM(T TRIM TRI TR
-------- ---- ---- ------ ------ ---- --- --
  aabb   aabb aabb aabb     aabb bbaa aab bb

trim(s)等价于trim(both from s)去掉两边的空格
trim(leading from s)去掉参数s前面的空格
trim(trailing from s)去掉参数s后面的空格
trim(leading 'a' from s)去掉参数s前面的a
trim(trailing 'a' from s)去掉参数s后面的a
trim(both 'a' from s)去掉参数s两边的a

lpad(s,n[,k])和rpad(s,n[,k])
select ename,lpad(ename,10,'*'),lpad(ename,2),rpad(ename,10,'*'),rpad(ename,3) from emp;
lpad(s,n[,k])的作用是将字符串s的长度变成n,如果s长度小于n则在左边用参数k补充,如果s长度
大于n,则从左边截取n个字符返回
rpad(s,n[,k])的作用是与lpad类似,如果s长度小于n则在右边用参数k补充,如果s长度
大于n,则从右边截取n个字符返回

substr(s,n[,m])
select ename,substr(ename,2,3) from emp;
该函数的作用是从参数s的第n个字符开始截取,长度为m,如果不带参数m,默认截取到s的最后

instr(s,k)  instr(s,k,n)  instr(s,k,n,m)
select ename,instr(ename,'A'),instr(ename,'A',3),instr(ename,'A',4),instr(ename,'A',3,2) from emp;
instr(s,k)的作用是字符串或者字符k在s中第一次出现的位置,
instr(s,k,n)的作用是从第n个位置开始,符串或者字符k在s中第一次出现的位置
instr(s,k,n,m)的作用是从第n个位置开始,符串或者字符k在s中第m次出现的位置

translate(s,v,m)
select ename,translate(ename,'A','B') from emp;
该函数的作用是用符串或者字符m替换符串或者字符n

replace(s,v)
select ename ,replace(ename,'AR'),replace(ename,'A')  from emp;
该函数的作用是移除字符串s中的符串或者字符v

replace(t,v,w)
select ename,replace(ename,'AR','aaaaaaa') from emp;
用字符串w替换字符串v

concat(s1,s2)
select ename,job,concat(ename,job),ename||job  from emp;
该函数的作用是连接两个字符串,作用相当于||

oracle中的函数(一)相关推荐

  1. oracle中各种函数,oracle中常用函数大全

    1.数值型常用函数 函数 返回值 样例 显示 ceil(n) 大于或等于数值n的最小整数 select ceil(10.6) from dual; 11 floor(n) 小于等于数值n的最大整数 s ...

  2. oracle中存在函数吗,Oracle中的函数

    Oracle中的函数 1.单行函数也称标量函数,对于从表中查询的每一行,该函数都返回一个值.单行函数可用与select子句中,也可用于where子句中.单行函数大致分为: >.日期函数 > ...

  3. Oracle中REGEXP_SUBSTR函数

    http://www.2cto.com/database/201209/154045.html Oracle中REGEXP_SUBSTR函数 Oracle中REGEXP_SUBSTR函数的使用说明: ...

  4. oracle tabs作用,Oracle 中 table 函数的应用浅析

    表函数可接受查询语句或游标作为输入参数,并可输出多行数据.该函数可以平行执行,并可持续输出数据流,被称作管道式输出.应用表函数可将数据转换分阶段处理,并省去中间结果的存储和缓冲表. 1. 用游标传递数 ...

  5. oracle杀死进程时权限不足_在oracle中创建函数时权限不足

    我对oracle有一点了解.我试图创建一个如下所示的函数.在oracle中创建函数时权限不足 CREATE OR REPLACE FUNCTION "BOOK"."CON ...

  6. oracle中prad函数_等保测评2.0:Oracle身份鉴别

    一.说明 本篇文章主要说一说oracle数据库中身份鉴别控制点中测评项a的相关内容和理解. 二.测评项a a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换 ...

  7. oracle中的to_number,Oracle中to_number()函数的用法

    to_number()函数是oracle中常用的类型转换函数之一,是将一些处理过的按一定格式编排过的字符串变回数值型的格式. 1.to_number()函数可以将char或varchar2类型的str ...

  8. Oracle中to_char()函数的用法

    Oracle中to_char()函数的用法 日期转换: to_char(date,'格式') select to_date('2005-01-01 ','yyyy-MM-dd') from dual; ...

  9. oracle 的wecate函数,1.Oracle中decode()函数用法

    1.Oracle中decode函数用法 含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻 ...

  10. Oracle中wm_concat函数报错解决方法

    Oracle中wm_concat函数报错解决方法 参考文章: (1)Oracle中wm_concat函数报错解决方法 (2)https://www.cnblogs.com/52net/archive/ ...

最新文章

  1. GNU/Linux平台上正则表达式的简单使用
  2. 从JSON数据中取出相关数据
  3. 阿里计算平台掌门人贾扬清:我对人工智能方向的一点浅见
  4. OpenCV--读取图像中任意点的像素值,并显示坐标
  5. Total Commander如何设置自定义快捷键在当前目录打开ConEmu
  6. 电脑版永恒纪元服务器正在维护,永恒纪元————【维护】1月10日更新维护公告...
  7. 巨潮资讯网-多层次资本市场信息披露平台
  8. 固态硬盘linux提升,固态硬盘在Linux系统下提升使用率妙方
  9. android studio 跳转后保留原页面数据_这些技巧和习惯,让你的原生 Android 手机更好用(上篇)...
  10. CentOS7使用firewalld打开关闭防火墙与端口
  11. 传媒经营之交通广播电台广告的独特个性
  12. 七、傻妞对接公众号教程
  13. 计算机组成原理实验一报告——运算器
  14. Boost:标记的简单双图bimap的测试程序
  15. 自己做的创新创业项目管理系统spring mvc+mysql+mybatics毕业设计
  16. 【lssvm预测】基于飞蛾扑火算法改进的最小二乘支持向量机lssvm预测
  17. 第四章 数字逻辑电路设计方法【Verilog】
  18. 培育百万开发者,Serverless的主战场
  19. 我与MVVM的恩怨情仇
  20. 队列应用之热土豆传递问题Python

热门文章

  1. Apple开发者账号介绍及证书配置说明。
  2. 用sql实现百年的阴阳历
  3. C++类型转换(static_cast,dynamic_cast,const_cast和reinterpret_cast)
  4. 如何将 PDF 转换为音频
  5. 干货!公平意识在在线元学习的研究
  6. springBoot中jetty tomcat undertow对比与undertow线程池配置
  7. 成为未来几年最炙手可热的机器学习人才,基本功、秘密武器和弹药补给
  8. 海信电视使用优酷投屏的方法
  9. (一)数字逻辑基础1
  10. Pycharm趁热打铁(一):记账系统,管理你的小金库。