字符串函数(2)

目录

字符串替换

 将所有员工姓名中的字母“A”替换为“_”

消除空格数据

字符串截取

字符串截取操作

从指定位置截取到结尾

截取部分内容

 截取每一位员工姓名的前三位字符

面试题:请问利用 Oracle 中的 substr() 函数进行截取时,字符串的索引是从 1 开始还是从 0 开始?


Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645

字符串替换

replace( 列 | 数据 , 要查找内容 , 新的内容 )

该函数可以将“列或者数据”中“要查找的内容”替换为“新的内容”

 将所有员工姓名中的字母“A”替换为“_”

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 中的 substr() 函数进行截取时,字符串的索引是从 1 开始还是从 0 开始?

Oracle 中的字符串索引都是从 1 开始,即使设置为 0 也会将其自动变为 1

你可能感兴趣的:(Oracle从小白到总裁,数据库,oracle,sql)