Oracle基础(四):字符串函数

1、CONCAT(CHAR1,CHAR2)

 

--将两个字符串拼接后返回
SELECT CONCAT(ename,sal) FROM emp;

--嵌套使用
SELECT CONCAT(CONCAT(ename,':'),sal) FROM emp;

还可以使用 || 操作符来拼接字符串

SELECT ename||':'||sal FROM emp;

2、LENGTH(CHAR)

返回参数指定的长度,VARCHAR2则实际长度,CHAR则长度包括后补空格

SELECT ename,LENGTH(ename) FROM emp;

3、 UPPER、LOWER、INITCAP

将字符串转换为大写、小写、首字母大写

SELECT 
    UPPER('hello world'),
    LOWER('HELLO WORLD'),
    INITCAP('HELLO WORLD')    
FROM DUAL;
--查询结果:HELLO WORLD,hello world,Hello World

 

4、TRIM、LTRIM、RTRIM

去除字符串中指定字符

--去除两边
SELECT TRIM('e' FROM 'eeeliteeeee') FROM DUAL;--结果:lit

--去除左边
SELECT LTRIM('eeeliteeeee','e') FROM DUAL;--结果:liteeeee
SELECT LTRIM('esrereserersliteee','res') FROM DUAL;--结果:liteee

--去除右边
SELECT RTRIM('eeeliteeeee','e') FROM DUAL;--结果:eeelit

5、LPAD,RPAD补位函数

将指定字符串显示指定长度,当不足时补充若干个指定字符以达到该长度,若小于则从左到右截。

select lpad(sal,5,'$'),rpad(sal,5,'$') from emp;--不足5位左边补$符
select rpad(sal,5,' ') from emp;--RPAD补空格相当于左对齐
select lpad(sal,5,' ') from emp;--LPAD补空格相当于右对齐
SELECT sal,RPAD(sal,3,'$')FROM emp;--LPAD和RPAD都是从左往右截取

6、SUBSTR(char,m[,n])

截取指定字符串,从m处开始连续截取n个字符。
n若不指定或超过实际可截取的长度,则都是截取到字符串末尾。
m若为负数,则是从倒数位置开始截取,数据库中下标都从1开始。

select substr('thinking in java',13,4) from dual;--java
select substr('thinking in java',10,100) from dual;
select substr('thinking in java',-4,4) from dual;--从倒数第4个字符开始截取
select substr('thinking in java',-23) from dual;--null

7、INSTR(char1,char2[,m[,n]])

查看char2在char1中的位置(下标)
m为从哪里开始查找,不写默认为1
n为第几次出现,不写默认为1

--查找'in'在'thinking in java'的位置,从第7位开始查找
select instr('thinking in java','in',7) from dual;--返回10

8、函数在WHERE子句中作为条件

select * from emp where ename=upper('scott');
--查看名字只有5个字母的员工信息
select * from emp where length(ename)=5;
--查看名字第3个字母是A的员工
select * from emp where instr(ename,'A',2)=3;
select * from emp where substr(ename,3,1)='A';

 

posted @ 2022-06-07 08:26  禾喵  阅读(475)  评论(0编辑  收藏  举报