字符函数

--lower,upper :大小写转换
select last_name,lower(last_name),upper(last_name) from employees;

--initcap 单词首字母大写,其他全小写
select initcap('this is a book') from dual; --This Is A Book

--concat (字符串1,字符串2):拼接字符串
select concat('hello','world') from dual; --helloworld

--substr(字符串1,起始位置【,截取个数】):截取一个字符串的子串,其实位置可以为负数(右边数第N位)
select substr('abcdefg',3) from dual;--cdefg
select substr('abcdefg',3,2) from dual;--cd
select substr('abcdefg',-3) from dual;--efg
select substr('abcdefg',-3,2) from dual;--ef

--length :返回字符串长度
select length('abcd') from dual;--4
select length('') from dual; -- null

instr(字符串,查找子串【,起始位置【,第几次出现】】)
select instr('abcdefg','cd') from dual;--3
select instr('abcdefg','cdf') from dual;--0
select instr('abcdefgcdefg','cd',4) from dual;--8 (因为是4之后的字母,所以从第2个cd开始查找,但是计算仍从头开始算)
select instr('abcdefgcdefg','cd'-1) from dual;--8 (负数所以倒过来数,但仍是第二个cd,所以还是8)
select instr('abcdefgcdefg','cd',1,2) from dual;--8(正数,第二个cd,还是8)

--lpad(字符串,固定长度,填充字符):左填充
--rpad(字符串,固定长度,填充字符),右填充
select lpad('abcd',7,'#') from dual;--###abcd
select lpad('abcd',3,'#') from dual;--abc
select rpad('abcd',3,'*') from dual;--abc
select rpad('abcd',7,'*') from dual;--abcd***
select lpad('',7,'*') from dual;-- null
select lpad(' ',7,'*') from dual;--******
select lpad('abcd',0.9,'*') from dual;--null
select lpad('abcd',7.9,'*') from dual;--***abcd

--trim(关键字 from 字符串):修建字符串两边的关键字
select trim('a' from 'aabcdaaxyza') from dual;--bcdaaxyz

select 123||ltrim(' abcd ')||456 from dual;--123abcd 456
select 123||ltrim('aaa abcd aaa ')||456 from dual;--123aaa abcd aaa 456
select 123||rtrim(' abc ')||456 from dual;--123 abc456

--replace(字符串,查找字符串[,替换字符串]):替换字符串中的子串,默认是替换空字符串
select replace('abcdefgabc','cd') from dual;--abefgabc (cd被空字符替换)
select replace('abcdefgabc','cd','*') from dual;--ab*efgabc

--chr:把编码转换为字符
select chr(65) from dual;--A

--把字符转为编码
SELECT ascii('A') from dual;--65
select ascii('家') from dual; --48338

原文地址:https://www.cnblogs.com/q827418266/p/5814210.html