Oracle數據庫(四)—— 單行函數

單行函數:對於每一行數據進行計算後獲得一行輸出結果、express

  SQL單行函數根據數據類型分爲字符函數、數字函數、日期函數、轉換函數,另外還有一些通用函數。例如NVL函數 函數

  • 操做數據對象
  • 接受參數返回一個結果
  • 只對一行進行變換
  • 每行返回一個結果
  • 能夠轉換數據類型
  • 能夠嵌套
  • 參數能夠是一列或一個值

 

一、字符函數

   大小寫控制函數:lower,upper,initcap

 

   字符控制函數:concat,substr,length,instr,lpad | rpad,trim,replace

concat:鏈接字符串, substr:分隔字符串, length:字符串長度spa

 

instr:字符串中首次出現字母的位置3d

 

lpad:左端補齊對象

 

rpad:右端補齊blog

 

trim:在字符串收尾去掉相應的字符,中間的保留字符串

 

replace:所有替換it

 

 二、數字函數

round:四捨五入io

 

trunc:截斷ast

 

mod:求餘

 

三、日期函數

  • 在日期上加上或減去一個數字結果認爲日期
  • 兩個日期相減返回日期之間相差的天數,日期不容許作加法運算,無心義
  • 能夠用數字除24來向日期中加上或減去天數

 

在日期上加減數字

 

日期相減 

 

MONTHS_BETWEEN:兩個日期相差的天數

 

 ADD_MONTHS:向指定日其中添加若干月數

NEXT_DAY:指定日期的下一個星期*對應的日期

 

LAST_DAY:本月的最後一天

-- 來公司的員工中,hire_date是每月倒數次日來公司的有哪些?

 

ROUND:日期四捨五入

TRANC:日期截斷

 

四、轉換函數

數據類型轉換:隱性轉換和顯性轉換

隱式轉換

 

 

顯性轉換

 

 

日期轉換爲字符串

字符串轉化爲日期

 在轉化時要穿插字符的時候,要使用雙引號

 

 數字轉字符串(貨幣符號:$ 美圓 , L 當地貨幣符號)

 

字符串轉數字

 

 

 

五、通用函數

NVL(exp1,exp2):若exp1不爲空,則使用exp1自己,若exp1爲空,則使用exp2

 1.能夠使用的數據類型有日期、字符、數字

2.函數的通常形式:

  • NVL(commission_pct,0)
  • NVL(hire_date,'01-JAN-97')
  • NVL(job_id,'No Job Yet')

--  求公司員工的年薪(含commission_pct) 獎金率

 

-- 輸出last_name,department_id,當department_id爲null時,顯示‘沒有部門’。

 

NVL2(exp1,exp2,exp3):若exp1爲空,返回exp2,不然,返回exp3

-- 查詢員工的獎金率,若爲空,返回0.01, 若不爲空,返回實際獎金率+0.015

 

 NULLIF(exp1,exp2):exp1等於exp2時返回null,不等時返回exp1

比較員工姓和名的長度,相同返回null,不一樣返回名的長度

 

COALESCE(不經常使用)

  • COALESCE 與 NVL 相比的優勢在於 COALESCE 能夠同時處理交替的多個值。
  • 若是第一個表達式爲空,則返回下一個表達式,對其餘的參數進行COALESCE 。

 

六、條件表達式

 在SQL語句中使用IF-THEN-ELSE邏輯

使用兩種方法

  • CASE表達式
  • DECODE函數

 

-- 查詢部門號爲 10, 20, 30 的員工信息, 若部門號爲 10, 則打印其工資的 1.1 倍, 20 號部門, 則打印其工資的 1.2 倍, 30 號部門打印其工資的 1.3 倍數

在須要使用IF-THEN-ELSE邏輯時:

一、CASE表達式

CASE expr WHEN comparison_expr1 THEN return_expr1

  [WHEN comparison_expr2 THEN return_expr2

   WHEN comparison_exprn THEN return_exprn

   ELSE else_expr]

END

 

 

 二、DECODE函數

DECODE(col|expression, search1, result1 ,

   [, search2, result2,...,]

   [, default])

 

7.總結

  • 使用函數對數據進行計算
  • 使用函數修改數據
  • 使用函數控制一組數據的輸出格式
  • 使用函數改變日期的顯示格式
  • 使用函數改變數據類型
  • 使用 NVL 函數
  • 使用IF-THEN-ELSE 邏輯
相關文章
相關標籤/搜索