字符处理函数

来源:互联网 发布:jbl蓝牙音箱 知乎 编辑:程序博客网 时间:2024/05/16 16:06
--单行函数--字符处理的,数字的,日期转换,通用函数
SELECT ename,upper(ename),lower(ename) 
FROM emp;


--多行函数-聚合函数,就是指多行函数
SELECT count(ename) FROM emp;
sum(),min(),max(),count()


/*
字符函数
*/


--lower,upper:转换大小写
SELECT ename,
       lower(ename),
       upper(ename)
FROM   emp;


--initcap:单词首字母大写,其余小写
SELECT initcap('this IS a book')
FROM   dual;


--concat(字符串1,字符串2):拼接字符串,只能拼接两个
SELECT concat('hello','world')
FROM   dual;


--substr(字符串,起始位置[,截取个数]):截字符截取一个字符串的子串,起始位置可以为负数(右数第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


--截字节
SELECT substrb('abcdefg',3) FROM   dual;--cdefg
SELECT substrb('abcdefg',3,2) FROM dual;--cd
SELECT substrb('abcdefg',-3) FROM   dual;--efg
SELECT substrb('abcdefg',-3,2) FROM   dual;--ef


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


SELECT lengthb('字符') from dual;


--instr(字符串,查找子串[,起始位置[,第几次出现]]):查找字符串中子串的起始位置,如果找不到返回0
--起始位置也可以为负数(从右向左反向搜索)
SELECT instr('abcdefg','cd') FROM dual;--3
SELECT instr('abcdefg','cdf') FROM dual;--0
SELECT instr('abcdefgcdefg','cd') FROM dual;--3
SELECT instr('abcdefgcdefg','cd',4) FROM dual;--8
SELECT instr('abcdefgcdefg','cd',-1) FROM dual;--8
SELECT instr('abcdefgcdefgcde','cd',1,3) FROM dual;--8


--lpad(字符串,固定长度,填充字符):左填充
--rpad:同上,右填充
SELECT lpad('abcd',7,'*') FROM dual;--###abcd
SELECT lpad('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',7.9,'*')  FROM dual;--***abcd


--去掉首尾空格
select trim('   aadfdsf  ') from dual;
--trim(关键字 from 字符串):修剪字符串两边的关键字
SELECT trim('b' FROM 'babcdaaxyza') FROM dual;--bcdaaxyz


SELECT 123||ltrim('   abcd   ')||456 FROM dual;--123abcd   456
SELECT 123||rtrim('   abcd   ')||456 FROM dual;--123   abcd456


SELECT rtrim('aabcdaaxyza','a') FROM dual;--aabcdaaxyz
SELECT ltrim('aabcdaaxyza','a') FROM dual;--bcdaaxyza


--replace(字符串,查找字符串[,替换字符串]):替换字符串中的子串,默认是替换为空字符串
SELECT replace('abcdefgabcd','cd') FROM dual;--abefgab
SELECT replace('abcdefgabcd','cd','#') FROM dual;--ab#efgab#


--chr:把编码转换为字符
SELECT chr(78) FROM dual;--A


--ascii:把字符转换为编码
SELECT ascii('N') FROM dual;--65


SELECT ascii('国') FROM dual;
0 0
原创粉丝点击