常用的处理字符串的函数有如下:
No. |
函数名 |
含义 |
1 |
字符串 upper(列 | 字符串) |
将传入的字符串全部转为大写 |
2 |
字符串 lower(列 | 字符串) |
将传入的字符串全部转为小写 |
3 |
字符串 initcap(列 | 字符串) |
将传入的字符串的首字母转为大写,其他字母全部转为小写 |
4 |
数字 length(列 | 字符串) |
返回字符串的长度 |
5 |
字符串 substr(列 | 字符串,开始索引,[长度]) |
进行字符串截取,如果没有指定长度,则从开始索引截取的结尾 |
6 |
字符串 replace(列 | 字符串,旧内容,新内容) |
对字符串的数据,以新的的子符内容替换旧的的子串内容 |
题目1:将字符串“WelcomeToZiBo”转换为大写。
select upper('welcomeToZiBo') from dual; |
题目2:将emp表的雇员姓名全部转换为小写。
select lower(ename) from emp; |
注意:Oracle数据库是区分大小写的。
SqlPlus命令接收用户输入语法:
select &input from dual; |
注意:数字直接写,字符串单引号。
一般用户输入时不会写单引号,也不会考虑大小写问题。
select '&input' from dual; select upper('&input') from dual; |
题目3:由用户输入雇员姓名,然后显示雇员所有信息。
select * from emp where ename=upper('&in'); |
题目4:查询emp表所有的雇员姓名,返回的姓名首字母大写。
select initcap(ename) from emp; |
题目5:查询雇员姓名长度为5的所有雇员的雇员编号、雇员姓名、职位。
select empno,ename,job from emp where length(ename)=5; |
题目6:取得字符串'WelcomeToZiBo'的子串'ZiBo'。
select substr('welcomeToZiBo',10,4) from dual; |
题目7:取得字符串'WelcomeToZiBo'的子串'come'。
select substr('welcomeToZiBo',4,4) from dual; |
注意:Oracle的索引是从1开始的,及时设置了0也会从1开始。
题目8:取得emp表每位雇员的雇员姓名、雇员姓名的前两位。
select ename,substr(ename,1,2) from emp; |
题目9:取得emp表每位雇员的雇员姓名、雇员姓名的后两位。
select ename,substr(ename,length(ename)-1,2) from emp; |
题目10:取得emp表每位雇员的雇员姓名、雇员姓名的前两位+后两位作为密码。
select ename,substr(ename,1,2) || substr(ename,length(ename)-1,2) as password from emp; |
注意:Oracle的函数有几十万个,不可能全部记住,但是此次的函数都是极度通用和高度归纳的,要求必须记下。