wKiom1hhItLi-gZ4AABh8bZO-Vc870.png-wh_50


函数的分类

=========================================================

单行函数:一个input对应一个output,input和output存在一一对应的关系 如lower

组函数:   多个input,但是只对应一个output。如 sum()


=========================================================

单行函数

特点:

每行返回一个结果,输入输出存在一一对应的关系

能嵌套使用 ,一个函数的输出能做另外一个函数的输入 如:select lowner(upper('aa')) from dual;

传入的变量可以是列的值,也可以是表达式。 如 select lower(ename) from emp;


=========================================================


字符函数:

1、大小写处理(upper lower),对字符串

SQL>select upper(ename),sal from emp;

SQL>select lower(ename),sal from emp;


2、连接函数 concat

SQL>select concat('Hello','World') from dual;


3、截取 substr(c1,n1,n2) 

n1 开始时候的位置

n2 截取的长度,默认为截取到最后。

SQL>select substr('HelloWorld',6,2) from dual;



4、instr 指定字符在某个字符串中的第几位

SQL>select instr('abcdefg','c') from dual;  c在字符串xxx的第几位

SQL>select instr('abcdefg','c',-1) from dual; 从右边往左边数,第一个c在第几位 第三个参数表示查找的方向

SQL>select instr('abcdefgc','c',-1) from dual;

SQL>select instr('abcdefgc','c',-1,2) from dual;


5、取长 length

select length('HeloWorld') from dual;

select length('') from dual;


6、位数填充

①左填充 lpad(c1,n,c2) 返回指定长度为n的字符串

SQL>select lpad(sal,10,'*') from emp;

②右填充

SQL>select rpad(sal,10,'*') from emp;  


7、修剪trim

SQL>select trim('    Hello     ') from dual;  --截取,两边的空格。作用 留言板空格的问题,可能不小心按住了很多空格

SQL>select ltrim('    Hello     ') from dual;

SQL>select rtrim('    Hello     ') from dual;


8、例子

SQL>select empno,concat('name is ',ename) NAME,job,length(ename),instr(ename,'A') "contains 'A'"

from emp

where substr(job,5) = 'GER';