Oracle常用的字符函数使用详解(字符截取、定位、填充、替换等等)

您所在的位置:网站首页 oracle数据转换函数 Oracle常用的字符函数使用详解(字符截取、定位、填充、替换等等)

Oracle常用的字符函数使用详解(字符截取、定位、填充、替换等等)

2024-07-16 05:33| 来源: 网络整理| 查看: 265

(1)、字符大小写转换函数:

1、UPPER:字符全部转成大写 2、LOWER:字符全部转成小写 3、INITCAP:字符首字母大写

使用示例: 在这里插入图片描述

(2)去除空白及字符串函数 TRIM,LTRIM,RTRIM**

1、trim:

1、默认截掉字符两侧的空白

使用示例: 在这里插入图片描述

2、trim([trim_str from] x): 从字符串X中截掉指定字符

使用示例: 在这里插入图片描述 通过实践发现trim([trim_str from] x)只能截取最左边或者最右边的单个指定字符 如下图:字符串中间的o并未去掉 在这里插入图片描述

2、LTRIM(X[,TRIM_STR]):

截掉字符串X左边的TRIM_STR(指定截取)字符(可一次性截取多个字符) 如图:把字符串左侧的指定字符给截取掉了

在这里插入图片描述 2、RTRIM(X[,TRIM_STR]):

截掉字符串X右边的TRIM_STR(指定截取)字符。(可一次性截取多个字符) 如图:把字符串右侧的指定字符给截取掉了

在这里插入图片描述 (3) substr 、 substrb截取字符函数

substr:根据字符长度来获取字符串(常用) substrb:根据字节长度来取字符串

补充:oracle里面定义字符类型默认长度是byte;如:varchar2(10)表示的是10个字节长度

substr: 格式:substr(str, start_position, length): str:需要进行截取操作的字符串 start_position:从字符串的第几位开始截取 length:截取的长度

如图:从字符串左侧的第2位开始截取5个字符 在这里插入图片描述 substrb: 在这里插入图片描述 从字符串右侧往左的第5位开始截取3个字符 在这里插入图片描述 (4)length、lengthb查询字符串长度

length:显示的是字符串的字符长度; lengthb:显示的是字符串的字节长度;

length:按字符计算长度,汉字、英文、数字都是1个字符 在这里插入图片描述 在这里插入图片描述 lengthb:按字节计算长度,英文、数字都是1个字节,汉字是三个字节 示例: 在这里插入图片描述 (5)concat、||字符串连接

concat:CONCAT(X,Y) 只能拼接两个字符串,可以嵌套使用 ||: X||Y||Z,可拼接多个字符串

concat使用示例: 在这里插入图片描述 ||使用示例: 在这里插入图片描述 (6)instr:字符查找函数

返回指定字符在字符串中的位置

1、instr(原字符串,要查询的字符或者字符串)

返回第1个字符b从左往右的所在位置

在这里插入图片描述 2、instr(原字符串,要查询的字符或者字符串,起始位置,匹配序号)

返回第2个字符b从左往右的所在位置

在这里插入图片描述 (6)ASCII、CHR:ascii

字符与ascii码的相互转换 ascii: 将字符转换成ascii码值 chr: 将ascii码值转换成字符

使用示例: 在这里插入图片描述 (7)lpad、rpad字符填充函数

lpad(需要填充的字符串,填充后的字符长度,填充字符串):向字符左边填充字符串 在这里插入图片描述 rpad(需要填充的字符串,填充后的字符长度,填充字符串):向字符右边填充字符串 在这里插入图片描述(8)replace、regexp_replace、translate:替换函数

1、replace(字符串,要被替换的字符,替换字符)

若替换字符为空,则仅去掉要被替换的字符

在这里插入图片描述 2、regexp_replace(字符串,要被替换的字符,替换字符) 功能与replace相似,但支持正则表达式

将字符串中含有的a和c字符都替换成*

在这里插入图片描述 3、translate translate(字符串,要被替换的字符,替换字符) 注意:替换字符要与被替换的字符长度一致,多出来的字符将不会被替换进去,如下图的C 在这里插入图片描述 (9) extract,to_char提取日期及获取时间差 1、extract(year/month/day from 日期/时间戳)

select sysdate ,extract(year from sysdate) as year --提取年 ,extract(month from sysdate) as month--提取月 ,extract(day from sysdate) as day --提取日 ,extract(hour from t1 ) as hour --提取时 ,extract(minute from t1 ) as minute --提取分 ,extract(second from t1 ) as second --提取秒 ,extract(day from t2 -t1) as day_diff --日期差 ,extract(hour from t2 -t1) as hour_diff --小时差 from (select to_timestamp('20200102 10:15:03','yyyymmdd hh24:mi:ss') t1 ,to_timestamp('20200105 17:23:08','yyyymmdd hh24:mi:ss') t2 from dual) t

在这里插入图片描述 2、to_char to_char(日期/时间戳。‘yyyy’/mm/[…]) 依次截取年月日时分秒

select sysdate , to_char(sysdate,'yyyy') , to_char(sysdate,'mm') , to_char(sysdate,'dd') , to_char(sysdate,'hh24') , to_char(sysdate,'mi') , to_char(sysdate,'ss') , to_char(to_date('20200102 10:15:03','yyyymmdd hh24:mi:ss'),'ss') from (select to_timestamp('20200102 10:15:03','yyyymmdd hh24:mi:ss') t1 ,to_timestamp('20200105 17:23:08','yyyymmdd hh24:mi:ss') t2 from dual) t

以上函数都可以结合实际情况联合使用: 范例:substr&instr

数据: 在这里插入图片描述 如何截取出字符串中的0.2?

字符串:d|我|银行|wer|0.2|hh|sien|000

首先,instr定位0.2前后的‘|’; 然后,substr进行截取 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3