函數的分類
=========================================================
單行函數:一個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';