目录
字符串替换
将所有员工姓名中的字母“A”替换为“_”
消除空格数据
字符串截取
字符串截取操作
从指定位置截取到结尾
截取部分内容
截取每一位员工姓名的前三位字符
面试题:请问利用 Oracle 中的 substr() 函数进行截取时,字符串的索引是从 1 开始还是从 0 开始?
Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645
replace( 列 | 数据 , 要查找内容 , 新的内容 )
该函数可以将“列或者数据”中“要查找的内容”替换为“新的内容”
SQL> select replace(ename, upper('a'), '_')
2 from emp;
REPLACE(ENAME,UPPER(
--------------------
SMITH
_LLEN
W_RD
JONES
M_RTIN
BL_KE
CL_RK
KING
TURNER
J_MES
FORD
实际上,利用 replace() 函数可以取消掉字符串中的全部空格数据
SQL> select replace('hello world nihao zaijian', ' ', '')
2 from dual;
REPLACE('HELLOWORLDNIHAOZAIJIAN','','')
--------------------------------------------
helloworldnihaozaijian
可以发现字符串“hello world nihao zaijian”中间的空格全部被取消
有两种语法:
substr( 列 | 数据,开始点 )从指定的开始点一直截取到结尾
substr( 列 | 数据,开始点,长度 )从指定的开始点截取指定长度的子字符串
SQL> select substr('helloworldnihao',11)
2 from dual;
SUBSTR('HE
----------
nihao
函数截取后得到的字符串为“nihao”
SQL> select substr('helloworldnihao',6,5)
2 from dual;
SUBSTR('HE
----------
world
函数截取后得到的字符串为“world”
对于 substr() 函数千万要记住一点,它的下标是从 1 开始的,也就是说在进行截取的时候字符串 从 1 开始作为索引下标,即使你设置的是 0,也会按照 1 来处理
SQL> select substr('helloworldnihao',0,5)
2 from dual;
SUBSTR('HE
----------
hello
SQL> select substr('helloworldnihao',1,5)
2 from dual;
SUBSTR('HE
----------
hello
SQL> select substr(ename,1,3)
2 from emp;
SUBSTR(ENAME,1,3)
------------------------
SMI
ALL
WAR
JON
MAR
BLA
CLA
KIN
TUR
JAM
FOR
Oracle 中的字符串索引都是从 1 开始,即使设置为 0 也会将其自动变为 1