天天看點

Oracle函數-單行函數-字元單行函數

Oracle函數-單行函數-字元單行函數

函數的分類

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

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