函數分爲單行函數和多行函數
單行函數
單行函數對每一行都會執行輸出結果
函數 | 參數 | 描述 |
---|---|---|
ascii(x) | x:任意字符 | 返回指定字符對應的十進制數 |
舉例:
select ascii('A') A,ascii('a') A,ascii('0') zero from dual;
函數 | 參數 | 描述 |
---|---|---|
chr(x) | x:數字 | 給定數字返回對應字符 |
舉例:
select chr(54740) zhao,chr(65) chr65 from dual;
函數 | 參數 | 描述 |
---|---|---|
concat(x,y) | x: |
舉例:
select concat('你好啊~','我的朋友!'),concat (xm,'你好!') from emp;
等同於:select '你好啊~'||'我的朋友!',xm||'你好!' from emp;
函數 | 參數 | 描述 |
---|---|---|
initcap(x) | x:字符串 | 返回字符串並將首字母大寫 |
舉例:
select initcap('smith') hh from dual;
函數 | 參數 | 描述 |
---|---|---|
instr(c1,c2,i,j) | c1:被搜索的字符串 c2:希望搜索到的字符串 i:搜索開始的位置,默認爲1 j:出現的位置,搜索到第幾個時結束 | 返回字符串並將首字母大寫 |
舉例:
select instr('asdfgasdfg','as',1,2) from dual;
函數 | 參數 | 描述 |
---|---|---|
length( c) | c:字符串 | 返回字符串的長度,中文和英文字符相同長度 |
舉例:
select length('小腿') from dual; //結果2
函數 | 參數 | 描述 |
---|---|---|
upper( c) | c:字符串 | 將字符串中英文字母轉換爲大寫 |
舉例:
select upper('adc 的') from dual;
函數 | 參數 | 描述 |
---|---|---|
exp( n) | n:數字 | 獲取e 的n次方 |
舉例:
select exp(8) from dual;
函數 | 參數 | 描述 |
---|---|---|
power( m,n) | m:底數 n:指數 | 計算m的n 次方值 |
舉例:
select power(2,8) from dual;
函數 | 參數 | 描述 |
---|---|---|
round( m,n) | m:要四捨五入的數 n:指定的位數 大於0時表示要保留的小數,小於0時表示從個位向左的第幾位開始四捨五入 | 四捨五入 |
舉例:
select round(234.456,2),round(234.456,-2) from dual;
函數 | 參數 | 描述 |
---|---|---|
trunc( m,n) | m:要截取的數 n:指定的位數 大於0時表示從小數點後幾位開始截取,小於0時表示從個位向左的第幾位開始截取,個位到該位換成0 | 截取數 |
舉例:
select trunc(210.546,2),trunc(234.456,-2) from dual; -- 210.54 200
函數 | 參數 | 描述 |
---|---|---|
add_months( date,n) | date:日期 n 增加幾個月 大於0時表示增加,小於0時表示減少,必須爲整數 | 增加月份 |
舉例:
select add_months(to_date('1999-06-12','yyyy-mm-dd'),2) from dual;
函數 | 參數 | 描述 |
---|---|---|
to_char( str,formatStr) | str:日期字符/其他字符 formatStr:格式化字符 | 按指定格式轉換爲字符串 |
yyyy : 年
mm: 月
dd: 日
hh24: 24小時制 時
hh12: 12小時制 時
mi: 分
ss: 秒
舉例:
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss' ) from dual;
函數 | 參數 | 描述 |
---|---|---|
trim( tstr from str) | tstr:要被去掉的字符 不填時默認爲空格,只能有一個字符 str:字符串 | 去掉首位指定的字符 |
舉例:
select trim('a' from 'aaddffaa' ) from dual; -- ddff
函數 | 參數 | 描述 |
---|---|---|
last_day( date) | date:日期 | 返回指定日期的最後一天 |
舉例:
select last_day(sysdate) from dual;
函數 | 參數 | 描述 |
---|---|---|
moths_between( date1,date2) | date1: 指定日期1 date2:指定日期2 | 返回date1與date2 之間相隔的月份(date1-date2) |
舉例:
select months_between(to_date('1998-03-22','yyyy-mm-dd'),to_date('1998-04-22','yyyy-mm-dd')) from dual;
函數 | 參數 | 描述 |
---|---|---|
next_day( date,str) | date: 指定日期 str:星期幾 如 星期一、星期二 | 返回距離date 最近的下一個星期幾的日期 |
舉例:
select next_day(sysdate,'星期二') from dual;
函數 | 參數 | 描述 |
---|---|---|
decode( n,match1,data1,match2,data2,…) | n: 被匹配的變量 match1:匹配字符1,data1:返回內容1 | 將變量進行匹配,返回對應的內容,類似於switch,未匹配到返回空字符 |
舉例:
select decode( 10 ,10,'10號部門',20,'20hao',30,'30hao') from dual;