当前位置: 代码迷 >> SQL >> oracle札记(七)Sql-plus函数
  详细解决方案

oracle札记(七)Sql-plus函数

热度:42   发布时间:2016-05-05 14:45:37.0
oracle笔记(七)Sql--plus函数

Sql--plus函数:

字符串函数是oracle使用最广泛的一种函数.

LOWER:小写

UPPER:大写

INITCAP:首字母大写

CONCAT:连接

SUBSTR:截取? (参数,开始,数目)

LENGTH:返回字符串的长度

INSTR:(参数,字母) 返回字母出现的位置

LPAD:(参数,长度,在前补齐参数字母)

RPAD:(参数,长度,在后补齐参数字母)

TRIM TRIM('S' from ename)去掉含有s

REPLACE:(参数,参数[,参数]:第一个参数操作数,第二是要查找的字符,第三个是替换的字符,如果没有第三个就删除查找的字符。

具体的例子:

//查询名称为scott的员工信息 (不区分大小写)

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp? where lower(ename)='scott';

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp? where upper(ename)='SCOTT';

//查询员工信息 把员工名称与工作连接在一起

SQL> select empno,concat(ename,job),mgr,hiredate,sal,comm,deptno from emp;

//查询员工信息 把员工名称与工作连接在一起

?? SQL> select empno,concat(ename||'is work:',job),mgr,hiredate,sal,comm,deptno from emp;

//查询员工名称中含有O字符的位置

SQL> select empno,instr(ename,'O'),job,mgr,hiredate,sal,comm,deptno from emp;

//查询员工名称中含有O字符的位置并且求出了员工名称字符长度

SQL> select empno,instr(ename,'O'),length(ename),job,mgr,hiredate,sal,comm,deptno from emp;

//在查询上面结果中过滤出员工工作从第三字母开始为ERK员工信息

SQL> select empno,instr(ename,'O'),length(ename),job,mgr,hiredate,sal,comm,deptno from emp where substr(job,3)='ERK';

备注:当含有两个参数的时候,从开始位置直接到参数结束的结束为止

//在效果同上的同时指明了截取个数为3

?SQL> select empno,instr(ename,'O'),length(ename),job,mgr,hiredate,sal,comm,deptno from emp where substr(job,3,3)='ERK';

//查询员工信息? 薪资是10位位数不够在左部分补*填充

SQL> select empno,ename,job,mgr,hiredate,LPAD(sal,10,'*'),comm,deptno from emp;

//查询员工信息? 薪资是10位位数不够在右部分补*填充

SQL> select empno,ename,job,mgr,hiredate,RPAD(sal,10,'*'),comm,deptno from emp;

//查询员工信息? 把员工名称中含有S字符去除掉

SQL> select empno,TRIM('S' from ename),job,mgr,hiredate,10,comm,deptno from emp;

等效于:

SQL> select empno,TRIM( both 'S' from ename),job,mgr,hiredate,10,comm,deptno from emp;

//查询员工信息? 把员工名称中前面有S字符去除掉

SQL> select empno,TRIM( Leading 'S' from ename),job,mgr,hiredate,10,comm,deptno from emp;

//等效于

SQL> select empno,LTRIM( ename,'S'),job,mgr,hiredate,10,comm,deptno from emp;

//查询员工信息? 把员工名称中后面有S字符去除掉

SQL> select empno,TRIM( trailing 'S' from ename),job,mgr,hiredate,10,comm,deptno from emp;

等效于:

SQL> select empno,RTRIM( ename,'S'),job,mgr,hiredate,10,comm,deptno from emp;

?

?

  相关解决方案