oracle字符串操作常用函数 及 正则表达式

常用oracle字符串函数:

查找字符串匹配,返回匹配开始索引

instr(源字符串, 目标字符串, 起始位置, 匹配序号):

源字符串 :没啥好说的

目标字符串 :需要匹配的字符串

起始位置 :源字符串的开始匹配索引,从1开始

匹配序号 :因为这个函数返回匹配的起始索引,所以如果有多个匹配,则用此确定返回第几个匹配的起始索引


截取并返回子字符串

substr(源字符串,起始位置,截取位数)

参数顾名思义

 

--------------------------------------数值函数------------------------------------------

--1、取一个数的大,小整数用floor()和ceil()

   select floor(123.45) as "取123.45的小整数",ceil(123.45) as "取123.45的大整数" from dual
--结果:取123.45的小整数    取123.45的大整数
--          123                           124

--2、数值的截取和去小数位,
--两个数中任意一个转换为浮点数后,整型的就会转换为浮点数再进行运算
   select cast(165*100 as float)/347  from dual

   select (40*100.0)/(123*1.0) 原数值,substr((40*100.0)/(123*1.0),5,2) 截取值,ROUND((40*100.0)/(123*1.0),1)固定小数位值  from dual;
--结果:原数值                     截取值  固定小数位值
--          32.520325203252    20        32.5         

--3、如何分别取一个小数的整数部分和小数部分呀,比如19.1657589,取出来整数为19,小数为1657589?sql中截取固定小数位、整数部分、小数部分:
 select cast(19.1657589 as decimal(6,3)) 固定小数位,cast(19.1657589 as int) 整数部分,19.1657589-cast(19.031 as int) 小数部分 from dual;
-- 结果:

固定小数位     整数部分    小数部分

19.166            19              0.1657589
--4、可以使用substr()和instr()截取字段,在sql中使用CHARINDEX函数或LEFT或RIGHT函数,在oracle中没有
 select substr('张三:一班:男',instr('张三:一班:男',':',1,1)+1,2) as 班级,instr('张三:一班:男',':',1,1)+1 开始位置  from dual
--结果: 班级    开始位置
--            一班    4

 

 

 

oracle正则表达式:

从10G开始支持

内置了四个函数

REGEXP_LIKE REGEXP_INSTR REGEXP_SUBSTR REGEXP_REPLACE

顾名思义,没啥好讲的

跟java正则表达式的区别主要在字符簇上,oracle如此表示:

字符簇: [[:alpha:]] 任何字母。 [[:digit:]] 任何数字。 [[:alnum:]] 任何字母和数字。 [[:space:]] 任何白字符。 [[:upper:]] 任何大写字母。 [[:lower:]] 任何小写字母。 [[unct:]] 任何标点符号。 [[:xdigit:]] 任何16进制的数字,相当于[0-9a-fA-F]。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值