oracle中的函数(一)
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中的函数(一)相关推荐
- oracle中各种函数,oracle中常用函数大全
1.数值型常用函数 函数 返回值 样例 显示 ceil(n) 大于或等于数值n的最小整数 select ceil(10.6) from dual; 11 floor(n) 小于等于数值n的最大整数 s ...
- oracle中存在函数吗,Oracle中的函数
Oracle中的函数 1.单行函数也称标量函数,对于从表中查询的每一行,该函数都返回一个值.单行函数可用与select子句中,也可用于where子句中.单行函数大致分为: >.日期函数 > ...
- Oracle中REGEXP_SUBSTR函数
http://www.2cto.com/database/201209/154045.html Oracle中REGEXP_SUBSTR函数 Oracle中REGEXP_SUBSTR函数的使用说明: ...
- oracle tabs作用,Oracle 中 table 函数的应用浅析
表函数可接受查询语句或游标作为输入参数,并可输出多行数据.该函数可以平行执行,并可持续输出数据流,被称作管道式输出.应用表函数可将数据转换分阶段处理,并省去中间结果的存储和缓冲表. 1. 用游标传递数 ...
- oracle杀死进程时权限不足_在oracle中创建函数时权限不足
我对oracle有一点了解.我试图创建一个如下所示的函数.在oracle中创建函数时权限不足 CREATE OR REPLACE FUNCTION "BOOK"."CON ...
- oracle中prad函数_等保测评2.0:Oracle身份鉴别
一.说明 本篇文章主要说一说oracle数据库中身份鉴别控制点中测评项a的相关内容和理解. 二.测评项a a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换 ...
- oracle中的to_number,Oracle中to_number()函数的用法
to_number()函数是oracle中常用的类型转换函数之一,是将一些处理过的按一定格式编排过的字符串变回数值型的格式. 1.to_number()函数可以将char或varchar2类型的str ...
- Oracle中to_char()函数的用法
Oracle中to_char()函数的用法 日期转换: to_char(date,'格式') select to_date('2005-01-01 ','yyyy-MM-dd') from dual; ...
- oracle 的wecate函数,1.Oracle中decode()函数用法
1.Oracle中decode函数用法 含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻 ...
- Oracle中wm_concat函数报错解决方法
Oracle中wm_concat函数报错解决方法 参考文章: (1)Oracle中wm_concat函数报错解决方法 (2)https://www.cnblogs.com/52net/archive/ ...
最新文章
- GNU/Linux平台上正则表达式的简单使用
- 从JSON数据中取出相关数据
- 阿里计算平台掌门人贾扬清:我对人工智能方向的一点浅见
- OpenCV--读取图像中任意点的像素值,并显示坐标
- Total Commander如何设置自定义快捷键在当前目录打开ConEmu
- 电脑版永恒纪元服务器正在维护,永恒纪元————【维护】1月10日更新维护公告...
- 巨潮资讯网-多层次资本市场信息披露平台
- 固态硬盘linux提升,固态硬盘在Linux系统下提升使用率妙方
- android studio 跳转后保留原页面数据_这些技巧和习惯,让你的原生 Android 手机更好用(上篇)...
- CentOS7使用firewalld打开关闭防火墙与端口
- 传媒经营之交通广播电台广告的独特个性
- 七、傻妞对接公众号教程
- 计算机组成原理实验一报告——运算器
- Boost:标记的简单双图bimap的测试程序
- 自己做的创新创业项目管理系统spring mvc+mysql+mybatics毕业设计
- 【lssvm预测】基于飞蛾扑火算法改进的最小二乘支持向量机lssvm预测
- 第四章 数字逻辑电路设计方法【Verilog】
- 培育百万开发者,Serverless的主战场
- 我与MVVM的恩怨情仇
- 队列应用之热土豆传递问题Python
热门文章
- Apple开发者账号介绍及证书配置说明。
- 用sql实现百年的阴阳历
- C++类型转换(static_cast,dynamic_cast,const_cast和reinterpret_cast)
- 如何将 PDF 转换为音频
- 干货!公平意识在在线元学习的研究
- springBoot中jetty tomcat undertow对比与undertow线程池配置
- 成为未来几年最炙手可热的机器学习人才,基本功、秘密武器和弹药补给
- 海信电视使用优酷投屏的方法
- (一)数字逻辑基础1
- Pycharm趁热打铁(一):记账系统,管理你的小金库。