Oracle 常见字符操作

本文详细介绍了在 Oracle 数据库中如何使用 SQL 进行字符串的拼接、截取、替换、查找以及长度计算等操作,同时涵盖了正则表达式的应用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、拼接

  1.使用 || 来实现 

SELECT '你'||'好!' title FROM dual;

 

  2.使用concat (不支持多个字符串的拼接,但是可以嵌套调用)

SELECT concat('你'||'好','吗?') title FROM dual;

 

二、截取

  1.SUBSTR(string,start, [length]) 这个应该都会用

三、替换

  1.TRANSLATE(char, from, to)返回将出现在from中的每个字符替换为to中的相应字符以后的字符串。若from比to字符串长,那么在from中比to中多出的字符将会被删除,三个参数中有一个是空,返回值也将是空值。

SELECT translate('cbcaadefg','abc','wo') FROM dual;

  

  2.REPLACE(char, search_string,replacement_string)

select REPLACE('fgsgswsfgs', 'fg' ,'j') 返回值 from dual;

  

  * replace与translate都是替代函数,只不过replace针对的是字符串,而translate针对的是单个字符。

四、查找

  1.instr( string1, string2 [, start_position [, nth_appearance ] ] ) / instr(源字符串, 目标字符串, 起始位置, 匹配序号)

SELECT INSTR('bbacdabcda','a') FROM dual;-- 最先出现的位置1
SELECT INSTR('bbacdabcda','a',4) FROM dual;-- 字符串第4个位置起,查找a出现的序号 6
SELECT INSTR('bbacdabcda','a',2,2) FROM dual;

  2.利用instr 函数查找字符串(全匹配)在数组中的位置

  1.思路:先将数组转换为字符串,然后再在前后加上‘,’,利用instr来instr('source,','||find_str||',') 来进行查找

五、字符长度

  length(char) 求字符串的长度    select length('ACD') from dual;

六、Oracle正则表达式

1.REGEXP_SUBSTR(String,pattern,position,occurrence,modifier)

        -String :需要正则处理的字符串

        -pattern:进行匹配的正则表达式

        -position:起始位置,从第几个字符串开始正则表达式(默认1)

        -occurrence:标识第几个匹配组,默认1

        -modifier:模式('i'不区分大小写进行检索;'c'区分大小写进行检索。默认为'c'。)

        1.查询使用正则分割后的第一个值,也就是17

        SELECT REGEXP_SUBSTR('17,20,23','[^,]+',1,1,'i') AS STR FROM DUAL; 

        2.获取一个多个数值的列,从而能够让结果以多行的形式展示出来

        SELECT LEVEL FROM DUAL CONNECT BY LEVEL <=7; 

        3.将上面REGEXP_SUBSTR的occurrence关联

        SELECT NVL(REGEXP_SUBSTR('17,20,23', '[^,]+', 1, LEVEL, 'i'), 'NULLL') AS STR

        FROM DUAL   CONNECT BY LEVEL <= 7;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值