度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 1185|回复: 4
打印 上一主题 下一主题

[分享] Oracle常用函数-字符和数学函数

[复制链接]

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
跳转到指定楼层
楼主
发表于 2020-6-14 18:04:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
oracle的开发和使用中,经常需要用到各种各样的函数,这一章归纳下简单的字符串、数学函数,以后需要用起来也方便点,也能让有缘的同学少走一点弯路。
--常用字符相关函数
1substr 字符串截取
substr(字符串,截取开始位置,截取长度)
select substr('abcdef',1,3) from dual
截取开始位置,01都是表示截取的开始位置为第一个字符;
2 instr 查找子串位置
select instr('abcfdgfdhd','fd')from dual
返回第一个子串的位置。
3|| 字符串连接
select 'hello'||', world' fromdual;
4trim 对字符串两边的处理
trim一般都是用在删除字符串两边的空格,也可以用来删除字符串两边的指定字符。trim指定删除的字符串只能是单个字符。
1. trim()删除字符串两边的半角空格。
2. ltrim()删除字符串左边的半角空格。
3. rtrim()删除字符串右边的半角空格。
4. trim('字符1' from '字符串2') 分别从字符2串的两边开始,删除指定的字符1
5. trim([leading | trailing | both]trim_char from string) 从字符串String中删除指定的字符trim_char
leading:从字符串的头开始删除。
trailing:从字符串的尾部开始删除。
both:从字符串的两边删除。
select trim(' ffm ') as name from dual;
select ltrim(' ffm ') as name from dual;
select rtrim(' ffm ') as name from dual;
select trim(leading 'f' from 'ffmmff') fromdual ;
select trim(trailing 'f' from'ffmmff') fromdual ;
select trim(both 'f' from 'ffmmff')fromdual ;
5 ascii 返回字符串首字母的Ascii
select ascii('a') from dual
6chr 返回ascii值对应的字母
select chr(97) from dual
7length 计算字符串长度
select length('ffm') from dual
8initcap(首字母变大写),lower(变小写),upper(变大写)
selectlower('fFM'),upper('fFM'),initcap('fFM') from dual;
9,Replace 替换字符
replace'将要更改的字符串','被替换掉的字符串','替换字符串'
select replace('ffm','m','1983')from dual;
10translate 替换指定字符串
TRANSLATE(string,from_str,to_str)
TRANSLATE REPLACE 所提供的功能的一个超集。返回将(所有出现的)from_str中的每个字符替换为to_str中的相应字符以后的string。如果 from_str to_str 长,那么在 from_str 中而不在 to_str 中的额外字符将从 string 中被删除,因为它们没有相应的替换字符。to_str 不能为空。
select translate('ffm','m','1983') fromdual;
返回结果为:ff1
11lpad [左添充] rpad [右填充](用于控制输出格式)
select lpad('ffm',8,'=') s1,rpad('ffm',8,'=')s2 from dual;
--常用数字、数学相关函数
1、取整函数(ceil 向上取整,floor 向下取整)
select ceil(66.6) N1,floor(66.6)N2 fromdual;
2、取幂(power) 和求平方根(sqrt)
select power(3,2) N1,sqrt(9) N2from dual;
3、求余(mod)
select mod(9,5) from dual;
4、返回固定小数位数 (round:四舍五入,trunc:直接截断)
select round(66.667,2)N1,trunc(66.667,2) N2from dual;
5、返回值的符号(sign正数返回为1,负数为-1)
select sign(-32),sign(293) fromdual;
6、返回x的绝对值ABS(x)
SELECT ABS(3), ABS(-1) FROM DUAL;
7、返回以x为底y的对数LOG(x,y)
8、返回xy次幂POWER(x,y)
9、返回x的平方根 SQRT(x)
SELECTLOG(10,100), POWER(3,3), SQRT(4) FROMDUAL;
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

348

主题

3572

帖子

9326

积分

论坛元老

Rank: 8Rank: 8

积分
9326
沙发
发表于 2020-6-15 00:18:18 | 只看该作者
抢沙发,抢沙发,抢沙发,

点评

居然抢到了!  详情 回复 发表于 2020-6-15 15:42
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

348

主题

3572

帖子

9326

积分

论坛元老

Rank: 8Rank: 8

积分
9326
板凳
发表于 2020-6-15 00:18:54 | 只看该作者

点评

好萌!  详情 回复 发表于 2020-6-15 15:43
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
地板
 楼主| 发表于 2020-6-15 15:42:30 | 只看该作者
万望 发表于 2016-7-15 00:18
抢沙发,抢沙发,抢沙发,

居然抢到了!
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
5#
 楼主| 发表于 2020-6-15 15:43:20 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-11-24 03:03 , Processed in 0.127077 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表