- A+
小写转换函数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.luyuan.io)】未经允许不得以任何方式转载,违者必将追究法律责任。
- 我的微信
- 这是我的微信扫一扫
- 我的电报
- 这是我的电报扫一扫