oracle中存在函数吗,Oracle中的函数
Oracle中的函數
1.單行函數也稱標量函數,對于從表中查詢的每一行,該函數都返回一個值.單行函數可用與select子句中,也可用于where子句中.單行函數大致分為:
>.日期函數
>.字符函數
>.轉換函數
>.其他函數
1.日期函數
>.add_months: add_months(d,n) d是日期 n表示月數
select addmonths(sysdate,1) from dual;
>.months_between months_between(d1,d2) 如果d1晚與d2,則結果為正數,否則為負數.如果d1和d2為某月中的同一天后月份的最后一天,則結果為整數,否則Oracle將根據一個月31天來計算結果的小數部分
select months_between(date'2005-2-10',date'2007-3-10') from dual; =-25 差25個月
>.last_day last_day(d) 返回日期當月的最后一天的日期值
>.round round(d,[fmt]) 次函數返回日期值,次日期四舍五入為格式模型指定的單位.fmt為可選項,默認舍入最靠近的那一天
select round(sysdate) from dual; 結果為sysdate當天的日期
select round(sysdate,'year') from dual; 如果sysdate中的月在7月1日之后則返回下一年的1月1日,否則為當年的1月1日
select round(sysdate,'month') from dual; 舍入到月的第一日
select round(sysdate,'day') from dual; 最近的星期日
>.trunc trunc(d,[fmt])與round不同的是:他只舍不入
select trunc(date'2005-8-27','year') from dual; =2005-1-1
>.next_day next_day(d,day) d表示日期,day表示一周中的任何一天.
select next_day(sysdate,'星期二') from dual; 結果為sysdate后的第一個星期二,參數'星期二'也可以用整數3表示.
>.extract extract(fmt from d) 提取日期中的特定部分.
select extract(year from date'2005-2-10') from dual; 結果為2005
注意次處的fmt不要使用''
2.字符函數
函數
說明
輸入
輸出結果
Initcap(char)
首字母大寫
select initcap(‘hello’) from dual;
Hello
Lower(char)
轉換為小寫
select lower(‘FUN’) from dual;
fun
Upper(char)
轉換為大寫
select upper(‘sun’) from dual;
SUN
Ltrim(char,set)
左裁減,set不寫默認裁減空格
select ltrim(‘xyzabc’,’xyz’) from dual;
abc
Rtrim
和左裁減相反
Select rtrim(‘xyzabc’,’abc’) from dual;
Xyz
Translate(char,from,to)
按from到to的翻譯模式,去匹配char中存在的字符并替換
Select translate(‘jack’,’abcd’,’1234’) from dual;
J13k
Replace(char,search_str,replace_str)
在char中查找srearch_str并替換成replace_str
Select replace(‘abcd’,’ab’,’fg’) from dual;
Fgdc
Instr(char,substr)
查找子串位置:從1開始,未找到時為0
Select instr(‘worldwide’,’d’) from dual;
5
Substr(char,pos,len)
從pos位置開始,取len的長度
Select substr(‘abcd’,2,2) from dual;
Bc
Concat(char1,char2)
連接字符串
Select concat(‘hello’,’world’) from dual;
helloworld
其他字符函數:
chr(ASCII):
根據acsii碼返回對應的字符
Lpad(char,len,to):
指定長度為len,不夠長就在左邊用to填充,若char的長度大于len,則取左邊的指定len,右邊舍掉,如:
select lpad('function',15,'=') from dual; 結果:======function 若:
select lpad('function',5,'=') from dual;結果funct 取5個的長度
Rpad和Lpad正好相反.
trim和ltrim和rtrim一樣,trim舍去左右兩邊的 默認也為舍去空格.
當指定leading 選項時,與Ltrim類似,裁減左邊的字符
select trim(leading 9 from 9992434999) from dual;結果2435999 開頭的9被去掉了,一旦遇到9以外的數字,將停止操作
當指定trailing選項時,則正好與leading 相反
select trim(trailing 9 from 9992434999) from dual;結果9992434
當不指定時 去掉左右兩邊的字符
select trim(9 from 9992434999) from dual;結果2434
decode(expr,search1,result1,search1,result2)
與translate不同的是,decode進行逐行逐個值的替換,translate進行逐行逐個字符的替換
數字函數
函數
說明
輸入
結果
Abs(n)
取絕對值
Select abs(-15) from dual;
15
Ceil(n)
向上取整(大于n的最小整數)
Select ceil(15.1) from dual;
16
Sin(n)
正玄
Select sin(1.571) from dual;
0.99999979
Cos(n)
余玄
Select cos(0) from dual;
1
Sign(n)
取符號(正返回1,負返回-1)
Select sign(-15) from dual;
-1
Floor(n)
向下取整(不大于n的最大整數)
Select floor(100.2) from dual;
100
Power(m,n)
M的n次幕
Select power(4,3) from dual;
64
Mod(m,n)
取m除n的余
Select mod(10,3) from dual;
1
Round(m,n)
四舍五入小數位為n
Select round(100.245,2)from dual
100.25
Trunk(m,n)
截斷小數位為n只舍不入
Select trunk(100.245,2) from dual
100.24
Sqrt(n)
平方根
Select sqrt(4) from dual
2
總結
以上是生活随笔為你收集整理的oracle中存在函数吗,Oracle中的函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle每小时分组查询,Oracle
- 下一篇: php pdo 数组,php – 使用P