Oracle——函數

數值函數

  • 四捨五入

ROUND(n,,m)

n:表示要進行四捨五入的值

m:表示保留小數點後幾位或前幾位

m>0:小數點後m位

m<0:小數點前m位

 

  • 取整函數

CEIL(n):取最大值

FLOOR(n):取最小值

  • 常用計算

ABS(n):絕對值函數

MOD(m,n):取餘函數 m%n,如果m或n中任意一個爲null,結果爲null

POWER(m,n):m的n次冪,如果m或n中任意一個爲null,結果爲null

SQRT(n):求平方根

  • 三角函數

SIN(n),ASIN(n):正弦,反正弦

COS(n),ACOS(n):餘弦,反餘弦

TAN(n),ATAN(n):正切,反正切

 

字符函數

  • 大小寫轉換函數

UPPER(char):轉爲大寫

LOWER(char):轉爲小寫

INITCAP(char):將首字母轉換爲大寫

  • 獲取子字符串函數

SUBSTR(char,m,n)

m:取字串的開始位置,爲0表示從頭截取,爲負數則從尾部開始截取

n:截取子串的位數

select substr('abcde',2,3) //bcd

select substr('abcde',-2,3) //dea

  • 獲取字符串長度函數

LENGTH(char)

  • 字符串連接函數

CONCAT(char1,char2) 等價於 char1 || cahr2

select concat('ab','cd') from dual;

select 'ab' || 'cd' from dual;

  • 去除字串函數

TRIM(c1FORM char):從char中去除c1字符

LTRIM(char,c1):從左端開始去除char中的c1字符

ETRIM(char,c1):從右端開始去除char中的c1字符

TRIM(char): 去除char兩端空格

  • 替換函數

REPLACE(char,s_string,r_string)

省略r_string用空格替換

 

日期函數

  • 系統時間

SYSDATE

select sysdate from dual

  • 日期操作

ADD_MONTHS(date,i) 默認顯示格式: day-month月-年

NEXT_DAY(date,char)

select next_day(sysdate,'星期一') from dual;

LAST_DAY(date)返回日期所在月的最後一天

MONTHS_BETWEEN()

select months_between('20-5月-15','10-1月-15')

EXTRACT(date FROM datetime) 獲取當前時間的年月日時分秒

select extract(month from sysdate) from dual; //7 ,當前時間爲2019-7-15

select extract(hour from timestamp ‘2019-7-15 19:26:13’); //19

 

轉換函數

  • 日期-->字符

TO_CAHR(date,fmt,params)

date:將要轉換的日期

fmt:轉換的格式

年:YY YYYY YEAR

月:MM MONTH

日:DD DAY

小時:HH24 HH12

分鐘:MI 秒:SS

params:日期語言(一般會根據操作系統選擇,可省略)

select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual; //2019-7-15 19:26:13

  • 字符-->日期

TO_DATE(char,fmt,params)

select to_date('2019-7-15','YYYY-MM-DD ') from dual; // 15-7月-19

to_date()會按照默認格式進行顯示,不受fmt控制

  • 數字-->字符

TO_CHAR(number,fmt)

fmt:數字格式

9:顯示數字並忽略前面的0

0:顯示數字,位數不足,用0補齊

.或D:顯示小數點

,或G:顯示千位符

$:美元符號

L:數字前加一個本地貨幣符號

S:加正負號(前後都可以)

EEEE:科學計數法表示

 

select to_char(12345.678,'$99,999.999') from dual; //$12,345.678

  • 字符-->數字

TO_NUMBER(char,fmt)

fmt 數字格式,可省略

select to_number('$1000','$9999') from dual; //1000

 

其他單行函數

  • NVL(x,value)

如果x爲空,返回value,否則返回x

  • NVL(x,value1,value2)

如果x爲非空,返回value1,否則返回value2

 

DECODE函數

DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )

Value 代表某個表的任何類型的任意列或一個通過計算所得的任何結果。當每個value值被測試,如果value的值爲if1,Decode 函數的結果是then1;如果value等於if2,Decode函數結果是then2;等等。事實上,可以給出多個if/then 配對。如果value結果不等於給出的任何配對時,Decode 結果就返回else 。

需要注意的是,這裏的if、then及else 都可以是函數或計算表達式。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章