您好,登錄后才能下訂單哦!
Oracle函數有字符函數、數學函數、日期函數和轉換函數。我只了解了字符函數和數學函數。
一、字符函數:
lower(char) 將字符串轉化為小寫的格式
SQL> select lower(ename),ename from emp;
LOWER(ENAME) ENAME
------------ ----------
smith SMITH
allen ALLEN
ward WARD
upper(char) 將字符串轉化為大寫的格式
SQL> select upper(ename),ename from emp;
UPPER(ENAME) ENAME
------------ ----------
SMITH SMITH
ALLEN ALLEN
WARD WARD
initcap(char)將字符串首字母轉化為大寫的格式
SQL> select initcap(ename),ename from emp;
INITCAP(ENAME) ENAME
-------------- ----------
Smith SMITH
Allen ALLEN
Ward WARD
substr(char,m,n) 取字符串的子串,從第2位開始取,取3位。m是從第m個開始取,取字符串的子串n代表取n個的意思,不是代表取到第n個
SQL> select substr(ename,2,3),ename from emp;
SUBSTR(ENAME,2,3) ENAME
----------------- ----------
MIT SMITH
LLE ALLEN
ARD WARD
length(char) 返回字符串的長度,HelloWorld一共有10位。截取了ename等于5的名字,只有兩個ward的長度是4,所以沒有列出來
SQL> select length('HelloWorld') from tb2;
LENGTH('HELLOWORLD')
--------------------
10
SQL> select ename from emp where length(ename)=5;
ENAME
------------------------------
SMITH
ALLEN
replace(char1,search_string,replace_string) 替換函數,把A替換成bob
SQL> select replace(ename,'A','bob'),ename from emp;
REPLACE(ENAME,'A','BOB') ENAME
------------------------------ ----------
SMITH SMITH
bobLLEN ALLEN
WbobRD WARD
instr(char1,char2,[,n[,m]])取子串在字符串的位置,W在第6個位置
SQL> select instr('HelloWorld','W') from tb2;
INSTR('HELLOWORLD','W')
-----------------------
6
二、數學函數:
數學函數的輸入參數和返回值的數據類型都是數字類型的。對數字的處理,在財務系統或銀行系統中用的最多,不同的處理方法,對財務報表有不同的結果。數學函數包括cos,cosh,exp,ln, log,sin,sinh,sqrt,tan,tanh,acos,asin,atan,round,這里講最常用的:
round(n,[m])該函數用于執行四舍五入,如果省掉m,則四舍五入到整數,如果m是正數,則四舍五入到小數點的m位后。如果m是負數,則四舍五入到小數點的m位前。
四舍五入到第1位
SQL>select round(sal),sal from emp;
ROUND(SAL) SAL
---------- ---------
800 800.34
1601 1600.56
1251 1250.78
SQL>select round(sal,1),sal from emp;
ROUND(SAL) SAL
---------- ---------
800.3 800.34
1600.6 1600.56
1250.8 1250.78
SQL>select round(sal),sal from emp;
ROUND(SAL) SAL
---------- ---------
800 800.34
1600 1600.56
1250 1250.78
SQL>select round(sal,1),sal from emp;
ROUND(SAL) SAL
---------- ---------
800.3 800.34
1600.5 1600.56
1250.7 1250.78
左側1位四舍五入
SQL> select round(211.5, -1) from dual;
ROUND(211.5,-1)
---------------
210
SQL> select round(215.5, -1) from dual;
ROUND(215.5,-1)
---------------
220
左側2位四舍五入
SQL> select round(211.5, -2) from dual;
ROUND(211.5,-2)
---------------
200
SQL> select round(261.5, -2) from dual;
ROUND(261.5,-2)
---------------
300
trunc(n,[m]) 該函數用于截取數字。如果省掉m,就截去小數部分,如果m是正數就截取到小數點的m位后,如果m是負數,則截取到小數點的前m位。
SQL> select trunc(45.923,2),trunc(45.923),trunc(45.923,-2) from dual;
TRUNC(45.923,2) TRUNC(45.923) TRUNC(45.923,-2)
--------------- ------------- ----------------
45.92 45 0
SQL> select trunc(45.923,2),trunc(45.923),trunc(45.923,-1) from dual;
TRUNC(45.923,2) TRUNC(45.923) TRUNC(45.923,-1)
--------------- ------------- ----------------
45.92 45 40
mod(m,n),求余數。取值是m/n的余數
SQL> select mod(10,2) from dual;
MOD(10,2)
----------
0
floor(n) 返回小于或是等于n的最大整數
SQL> select floor(sal),sal from tb2;
FLOOR(SAL) SAL
---------- ----------
500 500.34
500 500.56
585 585.56
ceil(n) 返回大于或是等于n的最小整數
SQL> select ceil(sal),sal from tb2;
CEIL(SAL) SAL
---------- ----------
501 500.34
501 500.56
586 585.56
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。