Oracle中單行函式的分類

2021-05-24 12:10:44 字數 3102 閱讀 2938

oracle 資料庫中單行函式的分類:

1、字元函式:接收字元輸入並返回字元或數值;

1)substr() --- 字串擷取,如:select substr('hello', 1, 3) from dual;

2)length() --- 字串長度,如:select length('hello') from dual;

3)replace() --- 字串內容的替換,如:select replace('hello', 'e', 'm) from dual;

4)upper() ---- 把小寫字母轉換成大寫字母,如:select upper('hello') from dual;

5)lower() --- 把大寫字母轉換成小寫字母,如:select lower('hello') from dual;

6)initcap() ---- 把單詞轉換成首字母大寫的形式(不論單詞是何種寫法),如:select initcap('hello world') from dual;

2、數值函式:接收數值輸入並返回數值;

1)四捨五入函式 ---- round(),如:

a)select round(789. 536)from dual;  預設只保留整數字;

b)select round(789.536, 2) from dual; 保留兩位小數;

c)select round(789.536, -2) from dual; 四捨五入整數字。

2)截斷小數字函式 ---- trunc(),如:

a)select trunc(789.536) from dual;  預設只保留整數字,並且小數字不做四捨五入運算;

b)select trunc(789.536, 2) from dual; 保留兩位小數,小數字不做四捨五入運算;

c)select trunc(789.536, -2) from dual; 在整數字從低位向高位捨棄,位數上的數字大於5同樣被捨棄,做0看待。

3)求餘(取模)函式 --- mod(),如:select mod(10, 3) from dual; 注意:分母不可為零哦!

3、日期函式:對日期型資料進行操作(重點 );

a)oracle 中的日期與數字的一些規律:

a)日期 - 數字 = 日期;

b)日期 + 數字 = 日期;

c)日期 - 日期 = 數字(表示天數);

b)函式:

a)months_between() ---- 求出指定範圍的月數,如:select empno, ename, round(months_between(sysdate, hiredate)) from emp ;

b)add_months() --- 在指定的日期上加上指定的月數,如:select add_months(sysdate, 3) from dual;

c)next_day() ----  求取和本週星期數相同的下週的星期數是幾號,如:select last_day(sysdate, '星期日') from dual;

d)last_day() --- 求取本月的最後一天是幾號,如:select last_day(sysdate) from dual;

e)round();

f)trunc(); 

4、轉換函式:從一種資料型別轉換成另一種資料型別;

a)日期萬用字元的一點介紹:

1)年:y,年是四位數字,故使用 yyyy 表示年;

2)月:m,月是兩位數字,故使用 mm 表示月;

3)日:d,日是兩位數字,故使用 dd 表示月;

b)函式:

1)to_char() ---- 轉換成字串,如:

select empno, ename, to_char(hiredate, 'yyyy') year , to_char(hiredate, 'mm') month , to_char(hiredate, 'dd') day from emp; 此例項完成日期的拆分工作,即分別取出年、月、日,用於格式化使用。

select empno, ename, to_cjhar(hiredate, 'yyyy-mm-dd') from emp; 完成日期的本地化;

select empno, ename, to_cjhar(hiredate, 'yyyy-mm-dd') from emp;  去掉前導 0,完成日期的本地化。

select empno, ename, to_char(sal, '99,999') from emp; 工資顯示時每個三位加乙個逗號,佔位符只能使用數字 9 。

select empno, ename, to_char(sal, '$99,999') from emp;  以美元的形式顯示工資。

select empno, ename, to_char(sal, 'l99,999') from emp; 本地化工資格式,「l」 或 「l」 為 "local「 的縮寫,以為本地化。

2)to_number() --- 轉換成數字,如:

select to_number('123') + to_number('789') from dual;  把字串「123」和字串「789」轉換成數字後進行四則運算。

3)to_date() --- 轉換成日期。

select to_date('2011-01-10', 'yyyy-mm-dd') from dual;  把字串日期格式轉換成 oracle 內建的日期格式。

5、通用函式:nvl函式、decode函式。

1)nvl() 函式用於把乙個變化的值設定另乙個預設值,常用語四則計算時把空值 null 設定為 0 ,示例如下:

select empno, ename, nvl(comm, 0), (sal + nvl(comm, 0)) * 12 income from emp;

2)decode() 函式類似於 if...else if...else 語句,用於依次逐個匹配資料並計算結構,如:

select decode(1, 1, '內容為 1', 2, '內容為 2', 3, '內容為 3') from dual;

select empno 員工編號, ename 員工姓名, hiredate 聘用日期, decode(job, 'clerk', '業務員', 'salesman', '銷售員', 'manger', '經理', 'president', '總裁') 職位 from emp;

oracle單行函式

1.字元函式 upper 全大寫 lower 全小寫 initcap 首字母大寫 length 取長度 substr 擷取字串 replace 替換 2.數值函式 round 四捨五入 trunc 擷取 mod 取餘 3.日期函式 當前日期 sysdate 日期 數字 日期 日期 數字 日期 日期 ...

oracle單行函式

單行函式 函式類別 單行 返回單個結果 substr,length 多行 返回多個結果,any,all 單行的分類 字元類,日期類,數字類,轉換類,通用類 1.字元類 轉換大小寫 lower 轉換為小寫 select ename,lower ename from emp upper 轉換為大寫 se...

Oracle單行函式

單行函式 運算元據物件,接受引數返回乙個結果,只對一行進行變換,每行返回乙個結果,可以轉換資料型別,可以巢狀,引數可以是一列或乙個值 一 字元函式 concat 字串連線,相當於 initcap 將引數的第乙個字母變為大寫 lower 將引數轉換為全部小寫字母 upper 將引數轉換為全部大寫字母 ...