數值函數
- 四捨五入
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 都可以是函數或計算表達式。