oracle 按等級取整
創(chuàng)新互聯(lián)專注于網(wǎng)站建設(shè)|成都網(wǎng)站維護(hù)公司|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計與制作經(jīng)驗,為許多企業(yè)提供了網(wǎng)站定制設(shè)計服務(wù),案例作品覆蓋成都水處理設(shè)備等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產(chǎn)品,結(jié)合品牌形象的塑造,量身開發(fā)品質(zhì)網(wǎng)站。
關(guān)于Oracle取整的函數(shù)分別有以下幾種:
1.取整(大)
select ceil(-1.001) value from dual
2.取整(?。?/p>
select floor(-1.001) value from dual
3.取整(截?。?/p>
select trunc(-1.002) value from dual
4.取整(舍入)
select round(-1.001) value from dual
上面有小數(shù),下面沒小數(shù),沒看出來有什么問題 你需要什么結(jié)果
如果余的小數(shù)想取整,那可以套個取整函數(shù) 進(jìn)ceil() 舍floor() 四舍五入round() 截取trunc()
什么是整除?如果是5/3那么得數(shù)應(yīng)該是1,你要的是1吧。
直接trunc就可以,如果還要余數(shù),那么就是5%3就可以了。
select trunc(1.54) --取整
,trunc(1.45) --取整
,floor(1.54) --取整
,floor(1.45) --取整
,round(1.54) --四舍五入
,round(1.45) --四舍五入
,ceil(1.54) --向上取整
,ceil(1.45) --向上取整
from dual
接收字符返回字符或數(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,第一個參數(shù)為字符串,第二個參數(shù)是索引,第三個參數(shù)結(jié)束索引(開始索引使用0和1效果一樣)
substr(hello,0,3) 結(jié)果為hel
6、獲取字符串長度
length(“hello”)
7、字符串替換,第二個參數(shù)為被替換的字符串,第三個是替換的字符串
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ù)
獲取兩個時間段的月數(shù)使用months_between(sysdate,入職日期)
3、獲取幾個月后的日期:add_months()
如:獲取員工三個月后的日期
add_months(sysdate,3)
4、如求出下星期一是什么時候
指定給出下次某日期數(shù)next_date()
next_date(sysdate,“星期一”)
5、求日期的最后一天last_day()
求出本月的最后一天
last_day(sysdate)
1、to_char字符串轉(zhuǎn)換函數(shù)
如:將所有員工的入職日期的年、月分開
注:在劃分時需要通配符
年:yyyy? 月:mm? 日:dd
時:HH 分:mi? 秒:ss
定義時間格式
to_char(sysdate,“yyyy-mm-dd HH24:mi:ss”)
在10以下的月數(shù)前面會默認(rèn)加上前導(dǎo)零,去除加上fm
to_char(sysdate,“fmyyyy-mm-dd HH24:mi:ss”)
to_char還可以給數(shù)字做格式化
如將員工的工資按三位“,”分隔
to_char(工資,“99,999”) 9代表數(shù)字
如果想在錢上加上國家符號
美元使用
中文使用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
如果在查詢的時候存在空值的情況可以使用
nvl(comm,0) 當(dāng)comm的列值為空時,用0代替
2、decode函數(shù)
該函數(shù)類似于if ...else if ...else
語法:decode(列名/值,search1,result1,search2,result2,default)
decode(中國,中國,我是中國,美國,我是美國,其他)
如果為中國返回我是中國,為美國返回我是美國,為其他字符則返回其他。
3、case when 與decode差不多
語法 case when city=中國 then 我是中國
? ? ? ? ? when city=美國 then 我是美國
? ? ? ? ? ? else 其他