Oracle中的單行函數


字符串函數:

 

注意SUBSTR 如果向要從后向前截取,可以使用負數來表示

例如:SUBSTR('helloword',-3),表示截取最后三個字符,不寫長度.默認從開始截取到字符串的末尾.

以上函數除了INITCAP以外都可以在mysql中使用

程序中的字符串,下標從0開始,數據庫中的下標從1開始,Oracle中,如果下標寫0.則按照1處理,在mysql中,不會返回任何結果

數學函數

注意,ROUND,和TRUNC函數都可以是用以下格式ROUND(889.99,-2) 這樣中格式,小數位數可以是負數,當小數位數是負數時,例子中的結果是900

在mysql中沒有TRUNC函數,有功能相同的TRUNCATE函數,用法也和Oracle中的TRUNC函數相同.

時間函數

在日期中有如下三個操作:

  日期+數字=日期(表示若干天之后的天數)

  日期-數字=日期(表示若干天前的天數)

  日期-日期=天數(表示兩個日期相差多少天)

但是這種計算的結果不精確,在oracle中不精確,在mysql中結果會是一種錯誤的結果

所以給出以下日期函數

使用日期函數進行日期的計算會很精確,但是以上的函數在mysql中只有LAST_DAY可以使用

 

 轉換函數

 

 

以上函數在mysql中不存在,只有Oracle中有

例如我想要將現在的時間轉換成字符串

SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd') FROM dual;

我們也可以從日期中獲取年.月,日

SELECT TO_CHAR(SYSDATE,'yyyy') from dual;

 

 還可以用來格式化數字

SELECT TO_CHAR(5635192189372198731,'999,999,999,999,999,999,999,999,999') FROM dual;

數字9.是任意數字的標記,在格式化數字或者貨幣的時候,定義的格式的字符串中,標記的位數必須大於需要轉換的數據的位數

貨幣的轉換

本地貨幣的標記是L,任意數字的標記是9

 

通用函數

NAL函數

如果我們要查詢員工表中,員工的編號,員工的姓名,員工的年薪(  年薪=(月薪+績效)*12  )

但是有些員工沒有績效,這樣的話,最后返回的結果,沒有績效的員工就沒有年薪

命令:select empno,ename,(sal+comm)*12 INCOME from emp;

這時候我們就可以使用NVL函數

命令select empno,ename,(sal+NVL(comm,0))*12 INCOME from emp;

DECODE函數,這個函數比較重要,面試的時候可能會被問到

完整的員工信息如下:

如果我們想要查詢員工編號,員工姓名,員工的job,但是員工的job名稱卻是英文,我們看着不太好看,想要將其顯示為中文

命令: Select empno,ename,job,DECODE(job,'CLERK','辦事人員','SALESMAN','銷售人員','MANAGER','經理','--') 職位 From emp ;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM