Oracle 中常用的字符串函数总结

一、substr 函数 —— 字符串截取

格式1:

substr(string,start_pos,length)

格式2:

substr(string,start_pos)

说明:

从指定位置start_pos截取字符串string的length位,如果不指定length(格式2)则从指定位置start_pos截取字符串string。

start_pos等于0或者1均从左边第一位开始截取。

如果start_pos为负整数,则从右截取字符串。

举例子:

SELECT
    substr('abcdef', 0, 3),
    substr('abcdef', 1, 3),
    substr('abcdef', 3),
    substr('abcdef', - 3)
FROM
    dual;

结果:

在这里插入图片描述

二、instr 函数 —— 查找字符串

格式1:

instr(string,sub_string,start_pos,times)

说明:

从字符串string的指定位置start_pos开始查询子串sub_string第times次出现的位置。

注意:start_pos,times为可选参数,默认值均为1

举例子:

SELECT
    instr('abcfdgfdhd', 'fd')
FROM
    dual;

结果:
在这里插入图片描述

三、|| —— 字符串连接

SELECT
    'Hello' || ' world'
FROM
    dual;

结果:

在这里插入图片描述

四、去掉字符串首尾空格

ltrim 去字符串首部空格

rtrim 去字符串尾部空格

trim 去字符串首尾空格

举例子:

SELECT
    ltrim(' a b c ') s1, rtrim(' a b c ') s2, trim( ' a b c ') s3
from dual;

结果:

在这里插入图片描述

五、去掉前导和后缀

与trim类似,去掉前导使用关键字leading,去掉后缀使用关键字trailing,都去除不实用关键字。

举例子:

SELECT
    TRIM(LEADING '1' FROM '111abc111'),
    TRIM(TRAILING '1' FROM '111abc111'),
    TRIM('1' FROM '111a111bc111')
FROM
    dual;

结果:

在这里插入图片描述

六、replace 函数 —— 字符串替换

格式1:

replace(string,sub_string1,sub_string2)

说明:

用字符串 sub_string2 替代string中的 sub_string1,如果不指定sub_string2则删除string中的sub_string1

举例子:

SELECT
    replace('abc', 'b', 'xy'),
    replace('abc', 'b')
FROM
    dual;

结果:

在这里插入图片描述

七、translate 函数 —— 字符串转译

格式1:

translate(string,serial1,serial2)

说明:

用序列 serial2 中的字符一一替换 serial1 中的字符,如果不指定则删除。

注意:序列serial1和serial2左对齐一一对译

举例子:

SELECT
    translate('abcdafgdqwe', 'ad', '**')
FROM
    dual;

结果:

在这里插入图片描述

八、字符大小写切换

initcap 首字母大写

lower 转小写

upper 转大写

注意:只争对英文字母,对汉字无效

举例子:

SELECT
    lower('背景'),
    lower('abccd'),
    upper('def'),
    initcap('efg')
FROM
    dual;

结果:

在这里插入图片描述

九、字符串填充

用于控制输出格式

lpad 左添充

lpad(string,length,pad_char)

string为待优化输出格式字符串,length为输出字符串总长度,pad_char为填充字符串

如果length小于string的长度,自动截取string到length位

rpad 右填充

rpad(string,length,pad_char)

举例子:

SELECT
    lpad('funccccccccccccccccccc', 8, '='),
    lpad('func', 8, '='),
    rpad('func', 8, '-')
FROM
    dual;

结果:

在这里插入图片描述

十、regexp_substr 函数 —— 通过正则表达式分割字符串

格式:

regexp_substr(String, pattern, position, occurrence, modifier)

说明:

string:需要进行正则处理的字符串

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

position:起始位置,从字符串的第几个字符开始正则表达式匹配,默认为1

occurrence:获取第几个分割出来的组,分割后最初的字符串会按分割的顺序排列成组,默认为1

modifier:模式–‘i’不区分大小写进行检索;‘c’区分大小写进行检索,默认为’c’

举例子:

SELECT
    regexp_substr('daefaDH5AF12dafe', '[a-z]'),
    regexp_substr('daefaDH5AF12dafe', '[^a-z]'),
    regexp_substr('daefaDH5AF12dafe', '[^a-z]', 1, 1, 'c'),
    regexp_substr('daefaDH5AF12dafe', '[^a-z]', 1, 1, 'i')
FROM
    dual;

结果:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/KevinChen2019/article/details/127532135