字符函数-(学习笔记)

--字符函数
--upper()将字符转换为大写
--lower()将字符转换为小写

SELECT UPPER('liunan'),LOWER('LIUNAN')

FROM dual;

 


--查询SMITH的信息,写smith写成小写,用UPPER转换为大写

SELECT *

FROM emp e

WHERE e.ename=UPPER('smith');

 


--查询所有员工的姓名并将所有员工姓名,首字母大写

SELECT e.empno,e.ename 原来的姓名,INITCAP(e.ename) 员工姓名首字母大写

FROM emp e;

 


--查询所有员工的编号,姓名,并且将员工姓名中所有字母A替换为字符'_'

SELECT e.empno,e.ename 原来的姓名,

REPLACE(ename,'A','_') 字母A替换为字符_

FROM emp e;

 

SELECT e.empno,e.ename 原来的姓名,

Translate(ename,'A','_') 字母A替换为字符_

FROM emp e;

 


--查询出姓名长度是5的所有员工信息

SELECT *

FROM emp e

WHERE LENGTH(e.ename)=5;

 


--查询姓名前3个是JAM的员工信息substr

SELECT *

FROM emp e

WHERE substr(e.ename,0,3)='JAM';

SELECT *

FROM emp e

WHERE e.ename LIKE 'JAM%';

 

--查询所有10部门员工的姓名,但不显示第个员工的前3个字母

SELECT e.deptno,e.ename 原来的姓名,

SUBSTR(e.ename,4) 不显示前3个字母姓名

FROM emp e

WHERE e.deptno=10;

 


--显示所有员工的姓名及后3个字母 -负代数从后向前

SELECT e.ename 原来的姓名,SUBSTR(e.ename,-3) 后3个字母

FROM emp e;

 


--用LENGTH也可以实现

SELECT e.ename 原来的姓名,SUBSTR(e.ename,-3) 后3个字母,

SUBSTR(e.ename,LENGTH(e.ename)-2) 后3个字母

FROM emp e;

 


--substr下标是从1开始的,设置为0会自动从1开始,设置为负数从后向前截取
--返回指定字符的ASCII码

SELECT ASCII('A'),ASCII('a') FROM dual;

--chr()将ASCII变为字符

SELECT CHR('65'),CHR('97') FROM dual;

SELECT ASCII('A'),ASCII('a'),CHR('65'),CHR('97') FROM dual;

 

--去掉左边空格

SELECT LTRIM(' liunan ') FROM dual;

--去掉右边空格

SELECT LTRIM(' liunan ') 去掉左边空格,

RTRIM(' liunan ') 去掉右边空格

FROM dual;

 

--去掉2边空格

SELECT LTRIM(' liunan ') 去掉左边空格,

RTRIM(' liunan ') 去掉右边空格,

TRIM(' liunan ') 去掉2边空格

FROM dual;

 


--LTRIM/RTRIM也可以截取

SELECT LTRIM('xyzadams','xyz') 左侧去掉xyz,

RTRIM('xyzadams','ams') 右侧去掉ams

FROM dual;

 


--字符左,右填充函数LPAD(),RPAD()

SELECT LPAD('liunan',10,'*') 去掉字符长度后左侧填充指定字符,

RPAD('liunan',10,'*') 去掉字符长度后左侧填充指定字符,

RPAD(LPAD('liunan',10,'*'),14,'*') 搭配使用左右填充

FROM dual;

 位置查找

select instr('abcedfghedfghijk','edf',1,2) from dual;

--查找edf在字符串中出现第二次的位置,从1开始

--结果为:9

 

你可能感兴趣的:(学习笔记)