oracle中的字符串处理函数汇总

  • A+
所属分类:技术

chatGPT账号

小写转换函数lower

lower(column_name|expr): 将字符串参数值转换成全小写字母后返回

大写转换函数upper

upper(column_name|expr): 将字符串参数值转换成全大写字母后返回

首字母大写函数initcap

initcap(column_name|expr): 将字符串参数值,每个单词的首字母转换成大写,其余

字母转换成全小写字母后返回

字符串长度函数length

length(column|expr)

--返回字符串中的字符个数,不区分是否为中文,只计算字符的个数

select  length('中文') from dual 显示的值为“2” ,只计算字符串的个数,不统计实际字符编码的长度。

子串(字符)定位函数instr

instr(源字符串,要找的子串[,开始查找的位置][,子串的第几次出现])

在源字符串中查找给定的子串出现的位置并返回。开始查找的位置默认为1,

子串的第几次出现默认也为1

在hello world中查找字符l第一次出现的位置。

记住:在字符串中,从左往右对每个字符进行了编号:第一个字符的位置是1,第二个是2,

依次类推

select instr('hello world','l') from dual;

 

hello world中查找字符l第3次出现的位置。

select instr('hello world','l',1,3) from dual;

注:常用来查找字符串中的特定符合或者分隔符号。例如:查找从字符串:

”180号,长安街道,海淀区“ 中找到所在的街道

select substr(

'180号,长安街道,海淀区',

instr('180号,长安街道,海淀区',',')+1,

instr ('180号,长安街道,海淀区',',',1,2)-1-instr('180号,长安街道,海淀区',',')

) stree from dual;

取子串函数substr

substr(源字符串,开始取子串的位置[,子串的长度]):取子串函数

从源字符串中的给定位置开始取一个特定长度的子串并返回。如果不指定子串的长度,那么

一直取到字符串的结尾

select substr('hello world',3),substr('hello world',3,4) from dual;

左右填充函数lpad/ rpad

lpad(源字符串,填充后字符串的长度,填充字符)

--rpad(源字符串,填充后字符串的长度,填充字符) :左/右填充函数

--在源字符串的左边或者右边填充给定字符到达指定的长度后返回

select lpad('hello',10,'*'),rpad('hello',10,'*') from dual;

左右去掉空格函数trim,ltrim,rtrim

trim(源字符串)

去掉字符串的首尾空格后返回

select trim('  hello  ') rs from dual;

 

ltrim(源字符串)/rtrim(源字符串)

去掉字符串的首部空格或者尾部空格后返回

select ltrim('  hello  ') rs1, rtrim('  hello  ') rs2 from dual;

字符串替代函数replace

replace(源字符串,要查找的子串,替换用的子串)

在源字符串中查找给定的子串,找到后把它用户替换用的子串换掉,返回替换后的字符串

select replace('Jue and Jack','J','Bl') from dual;

字符串连接函数concat

concat(字符串1,字符串2)

将2个字符串参数值首尾相连后返回。等价于操作符||

select concat('hello','world') from dual;

decode函数

decode函数

--它是oracle特有的函数,完成和case同样的功能。

--它的形式非常类似simple case。

SELECT last_name,job_id,salary,

decode( job_id

, 'IT_PROG' , 1.10*salary

, 'ST_CLERK' , 1.15*salary

,'SA_REP' , 1.20*salary

, salary ) "revised_salary"

FROM employees;

本文由 知点 首发于【知点网http://www.zhidnet.com)】未经允许不得以任何方式转载,违者必将追究法律责任。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的电报
  • 这是我的电报扫一扫
  • weinxin
chatGPT账号
知点

发表评论

您必须登录才能发表评论!