字符函数(scott/tiger 登陆)
--upper(col name)将字符大写
--lower(col name)将字符小写
--initcap(col name)字符串的首字母大写,其余小写
select ename 原表姓名,initcap(ename) 字符串的首字母大写 from emp;
--length(col name)=x列内字符长度为x的行
--查询ename列字符串长度为5的行;
select * from emp where length(ename)=5;
--replace(列名,'被替换的字符串','想要替换的字符串'
select ename 原列姓名,replace(ename,'A','_') 被替换后的姓名 from emp;
--substr(列名|字符串,起始位置)
--substr(列名|字符串,起始位置,结束位置)
select substr(ename,0,3) from emp;--显示ename列0到3位。
select * from emp where substr(ename,0,3)=upper('jam');--查询ename列0-3位为大写字母JAM的行。
--已知ename列字符串长度定义的是5,已下3个查询语句同样的效果:
select t.ename 原始姓名,substr(t.ename,3) from emp t;--本句查询ename从第3个字符到最后(即第五个字符串)。
select t.ename 原始姓名,substr(t.ename,-3)from emp t;--本句查询ename从倒数第3个字符到最后(即第五个字符串)。
select t.ename 原始姓名,substr(t.ename,length(t.ename)-2) from emp t;--本句查询从ename 5-2个字符到最后(即第五个字符串)。
select t.ename 原始姓名,substr(t.ename,-2)from emp t;--本句查询ename从倒数第2个字符到最后(即第五个字符串)。
select t.ename 原始姓名,substr(t.ename,length(t.ename)) from emp t;--本句查询ename从倒数第5个字符到最后(即第五个字符串)。
--ascii
--TRIM去除列的空格,本例中test space空格数5个:
select 'test space ',RTRIM('test space ') 去除右空格 from dual;
select ' test space',LTRIM(' test space') 去除左空格 from dual;
select ' test space ',TRIM(' test space ') 去除左右空格 from dual;
--lpad,rpad在字符串的左右补充特定内容至设定的长度。本例中补充test列的长度到10:
select lpad('test',10,'*') from dual;
select rpad('test',10,'#') from dual;
select rpad(lpad('test',10,'*'),16,'#') from dual;