oracle中的常用函數
1. 字符串常用函數
函數名 |
說明 |
concat |
用來連接字符串的函數,只能連接兩個字符串。如果想連接多個字符串可以使用"||"符號 |
initcap |
把每個單詞的首字母大寫。 |
instr(‘母字符串’,‘子字符串’) |
母字符串:被查找的字符串。子字符串:要查找的字符串。 如果有第三個參數,代表從第幾個字符開始查找。 第四個參數代表查詢第幾次出現的字符串的下標,默認是1。 查詢不到返回0 select instr('410106199012132018','19901213',1,1) instring from dual; |
upper |
把所有字符大寫 |
lower |
把所有字符小寫 |
rpad('母字符',n,'子字符') |
(ringht pad)在列的右邊粘貼字符。在母字符右邊補充子字符串。n表示補充后達到的字符數量 select rpad('gao',10,'#') from dual; |
lpad |
(left pad)在列的左邊粘貼字符。同rpad |
ltrim('','') |
刪除左邊出現的字符串 第一個參數代表要處理的字符串,如果沒有第二個參數代 表刪除空格,如果有第二個參數代表要刪除第二個參數指定的字符串** |
rtrim |
刪除右邊出現的字符串. 同ltrim select rtrim('*令狐沖 ',' ') from dual; |
substr( ' ', , ) |
截取子字符串 第一個參數代表要處理的字符串,第二個參數代表從第幾位開始截取,默認從1開始。第三個參數代表最多截取多少個字符,若為空截全部 select substr(‘13012345678’,3,8) from dual; |
replace |
字符串替換 第一個參數代表要處理的字符串。第二個參數表示要替換的字符串,第三個參數表示替換后的字符串 select replace('全能神就是好','全能神','切糕') from dual; |
trim(type'字符串1'from'字符串2') |
分別從字符串2的兩邊開始刪除指定的字符1個,如果第前兩個參數和from省略,則刪除字符串2兩邊的空格; type:刪除的方式(leading:從左邊開始刪除;trailing:從右邊開始刪除;both:默認方式,從兩邊刪除) 刪除tech兩端的字符串 :select trim(' tech ') from dual; 刪除 000123頭部的0字符 : select trim(leading '0' from '000123') from dual; |
處理數值類型的常用函數
函數名 |
說明 |
ABS |
返回指定值的絕對值 |
CEIL |
返回大於或等於給出數字的最小整數 select ceil(3.1415927) from dual; |
FLOOR |
對給定的數字取整數 |
MOD(n1,n2) |
返回一個n1除以n2的余數 |
POWER(n1,n2) |
返回n1的n2次方 |
SIGN |
取數字n的符號,大於0返回1,小於0返回-1,等於0返回0 |
SQRT |
返回數字的根 |
| round | 按照指定的精度四舍五入 第二個參數為正時,表示從小數點向后計算。 第二個參數為負時,表示從小數點向前計算。 select round(124.1666,-2),round(124.1666,2) from dual;
| trunc | 按照指定的精度截取一個數 select trunc(124.1666,-2) , trunc(124.16666,2) from dual; |
日期函數
函數名 |
函數值 |
sysdate |
獲取當前日期 select sysdate, to_char(sysdate,’dd-mm-yyyy day’) from dual; |
ADD_MONTHS |
增加或減去月份 select add_months(sysdate,2) from dual; |
LAST_DAY |
返回日期的最后一天 |
MONTHS_BETWEEN(date2,date1) |
給出date2和date1相差的月份 |
NEXT_DAY(date,'day') |
給出日期date和星期x之后計算下一個星期的日期 |
trunc(date,fmt) |
按指定格式截取日期 |
to_char() |
把數字或者日期轉換為字符串。轉換日期to_char(日期,要轉換成的 日期的格式) |
to_date() |
把字符串轉換為日期 有兩個參數,第一個參數是要轉換的日期的字 符串,第二個參數日期字符串的格式 |
|
|
轉換函數
函數 |
返回 |
描述 |
to_char(timestamp, text) |
text |
把 timestamp 轉換成 string |
to_char(int, text) |
text |
把 int4/int8 轉換成 string |
to_char(double precision, text) |
text |
把 real/double precision 轉換成 string |
to_char(numeric, text) |
text |
把 numeric 轉換成 string |
to_date(text, text) |
date |
把 string 轉換成 date |
to_timestamp(text, text) |
date |
把 string 轉換成 timestamp |
to_number(text, text) |
numeric |
把 string 轉換成 numeric |
|
|
|
|
|
|
將日期按特定格式顯示
select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') from dual;
將字符串數據轉換成為日期類型
select to_date('3月 7,1999','Month DD,yyyy') from dual;
select to_char(hiredate,’yyyy-MM-dd day’) from emp• where rownum<10;
將字符串轉換為數值
select to_number('1999') + 10 from dual;
其他函數
nvl 值為空時顯示某個值,否則顯示自身
select ename, sal,comm,nvl(comm,0),sal+nvl(comm,0) from emp;
nvl2 參數1不為null,返回第二個參數,否則第三個參數
select comm,nvl2(comm,comm,0) from emp;
聚合函數
max
最大值
min
最小值
count,
列總和
sum,
相加總和
avg
計算平均值