Oracle常用函數(shù):

在廣南等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營(yíng)銷型網(wǎng)站,外貿(mào)網(wǎng)站建設(shè),廣南網(wǎng)站建設(shè)費(fèi)用合理。
Substr??截取函數(shù)
Distinct??去除重復(fù)函數(shù)
Having?一般與group?by?公用的限制語(yǔ)句?他不與單個(gè)值有關(guān)而是與組有關(guān)
Inner?join……on???內(nèi)連接語(yǔ)句
Abs??取絕對(duì)值的函數(shù)??Select??Asb(-100)?from?dual
mod?取余函數(shù)
sign?返回?cái)?shù)的符號(hào)?正為1??0為0??負(fù)為-1
cell(n)?返回=n的最小整數(shù)?要求n必須是十進(jìn)制的數(shù)
sort(n)?返回n的平方根??當(dāng)n小于0是返回nan?????Power(n1,n2)??返回?n1的n2次冪?????Exp(n)??返回e的n次冪
LOG(n1,n2)?返回以n1為底n2的對(duì)數(shù)?n1不為0,1?????Ln(n)?返回n的自然對(duì)數(shù)?n不為?0,1
ASCII(char)返回參數(shù)首字母的ASCII碼值
lengtch(char)?返回字符串char?的長(zhǎng)度
substr(‘給定的字符串’,A,B)??A表示從第幾位開始截?B表示截幾位,如果A為負(fù)值?從右邊數(shù)到A位開始向后截B位
cast??數(shù)據(jù)類型轉(zhuǎn)換函數(shù)
chartorowid?函數(shù)?將?char類型轉(zhuǎn)換為ROWID?類型?但是最后長(zhǎng)度必須滿足rowid的標(biāo)準(zhǔn)18位
Rowidtochar??函數(shù)??將rowid?類型轉(zhuǎn)換為char?因?yàn)閞owid長(zhǎng)度為18,故轉(zhuǎn)換成的字符串也是18位。
to_char(number)??將數(shù)字類型轉(zhuǎn)換成字符類型?????To_char(data) ? ?將日期轉(zhuǎn)換成字符型
lnnvl?(條件)?排除條件得到指定條件之外的函數(shù)
nvl(expr1,expr2)???如果expr1為null?則返回expr2??否則返回expr1
在查詢所有的父節(jié)點(diǎn)(祖宗);
相反的,m.parent = prior m.id就是表示上一條記錄的id是本條記錄的父id,也就是上條記錄是本條記錄的父親,那么就是在查詢所有的子節(jié)點(diǎn)(后代)。
create or replace
FUNCTION "函數(shù)名"
(
A in number,
B in number,
name in VARCHAR2
)
BEGIN
insert into 表名 values(A+B,name);
END 函數(shù)名;
//花括號(hào)里邊就是需要傳的參數(shù),name如果是固定的可以直接寫死,就不用傳參了
如果確定每個(gè)字符串里面只有2個(gè)$,可以用substr和instr這個(gè)兩個(gè)函數(shù)組合實(shí)現(xiàn),如下的結(jié)果即為456。
select substr('123$456$789',instr('123$456$789','$')+1,instr('123$456$789','$',-1)-instr('123$456$789','$')-1) from dual;
select case when a.timenum'1130' then 'A'
else
(case when a.timenum'1130' and a.timenum'1230' then 'B'
else (case when a.timenum'1230' and a.timenum'1630' then 'C'
else (case when a.timenum'1630' and a.timenum'1730' then 'D' end)
end) end ) end df from (select to_number(to_char(sysdate,'HH24mi')) as timenum,'' as getvalue from dual) a
測(cè)試時(shí)可把sysdate換成
to_char(to_date('12:40','HH24:mi'),其中12:40可以任意更換區(qū)間
ok搞定
接收字符返回字符或數(shù)值時(shí)可以使用dual偽表
1、把小寫字符轉(zhuǎn)換成大寫
select supper(“smi”) form dual
2、把大寫轉(zhuǎn)換成小寫
lower(“SMI”)
3、首字母大寫
initcap(“smi”)
4、字符串的連接可以使用concat,也可以使用? ? 建議使用
concat(“hello”“world”) 結(jié)果為helloworld
5、字符串的截取,使用substr,第一個(gè)參數(shù)為字符串,第二個(gè)參數(shù)是索引,第三個(gè)參數(shù)結(jié)束索引(開始索引使用0和1效果一樣)
substr(hello,0,3) 結(jié)果為hel
6、獲取字符串長(zhǎng)度
length(“hello”)
7、字符串替換,第二個(gè)參數(shù)為被替換的字符串,第三個(gè)是替換的字符串
replace(“hello”,“l(fā)”,“x”) 結(jié)果為hexxo
1、四舍五入函數(shù)ROUND()
默認(rèn)取整,可以指定保留位數(shù)
round(12.523)? 結(jié)果為13
round(12.537,2) 結(jié)果為12.54
2、取整TRUNC
默認(rèn)全部去掉小數(shù),可以指定位數(shù)
trunc(12.789) 結(jié)果為12
3、取余數(shù)MOD
mod(10,3) 結(jié)果為1
oracle中提供了很多和日期相關(guān)的函數(shù),包括日期的加減
日期 - 數(shù)字 =日期
日期 - 日期 = 數(shù)字(天)
1、如:查詢員工進(jìn)入公司的走數(shù)
(sysdate - 入職日期)/7
注:當(dāng)前日期查詢select sysdate form dual
2、查詢所有員工進(jìn)入公司的月數(shù)
獲取兩個(gè)時(shí)間段的月數(shù)使用months_between(sysdate,入職日期)
3、獲取幾個(gè)月后的日期:add_months()
如:獲取員工三個(gè)月后的日期
add_months(sysdate,3)
4、如求出下星期一是什么時(shí)候
指定給出下次某日期數(shù)next_date()
next_date(sysdate,“星期一”)
5、求日期的最后一天last_day()
求出本月的最后一天
last_day(sysdate)
1、to_char字符串轉(zhuǎn)換函數(shù)
如:將所有員工的入職日期的年、月分開
注:在劃分時(shí)需要通配符
年:yyyy? 月:mm? 日:dd
時(shí):HH 分:mi? 秒:ss
定義時(shí)間格式
to_char(sysdate,“yyyy-mm-dd HH24:mi:ss”)
在10以下的月數(shù)前面會(huì)默認(rèn)加上前導(dǎo)零,去除加上fm
to_char(sysdate,“fmyyyy-mm-dd HH24:mi:ss”)
to_char還可以給數(shù)字做格式化
如將員工的工資按三位“,”分隔
to_char(工資,“99,999”) 9代表數(shù)字
如果想在錢上加上國(guó)家符號(hào)
美元使用
中文使用l
to_char(工資,“99,999”)
to_char(工資,“l(fā)99,999”)
2、to_number數(shù)值轉(zhuǎn)換函數(shù),將字符串轉(zhuǎn)換成數(shù)值
to_number(“10”) +to_number(“10”)
3、to_date日期轉(zhuǎn)換函數(shù),將字符串?dāng)?shù)據(jù)轉(zhuǎn)換成日期類型
to_date(“1997-05-12”,“YYYY-mm-dd”)? 1997/05/12
1、空值處理 nvl
如果在查詢的時(shí)候存在空值的情況可以使用
nvl(comm,0) 當(dāng)comm的列值為空時(shí),用0代替
2、decode函數(shù)
該函數(shù)類似于if ...else if ...else
語(yǔ)法:decode(列名/值,search1,result1,search2,result2,default)
decode(中國(guó),中國(guó),我是中國(guó),美國(guó),我是美國(guó),其他)
如果為中國(guó)返回我是中國(guó),為美國(guó)返回我是美國(guó),為其他字符則返回其他。
3、case when 與decode差不多
語(yǔ)法 case when city=中國(guó) then 我是中國(guó)
? ? ? ? ? when city=美國(guó) then 我是美國(guó)
? ? ? ? ? ? else 其他
網(wǎng)站名稱:oracle的函數(shù)怎么寫,oracle函數(shù)大全及舉例
網(wǎng)站鏈接:http://chinadenli.net/article20/dsggijo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、做網(wǎng)站、定制開發(fā)、、網(wǎng)站維護(hù)、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
網(wǎng)頁(yè)設(shè)計(jì)公司知識(shí)