ceil(x) 向上取整
創(chuàng)新互聯(lián)公司成立于2013年,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元蓬溪做網(wǎng)站,已為上家服務(wù),為蓬溪各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):18980820575
floor(x) 向下取整
round(x,n) 當(dāng)n=0時(shí)就是取整,四舍五入法則
x是你的小數(shù)
oracle 按等級(jí)取整
關(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ù),下面沒(méi)小數(shù),沒(méi)看出來(lái)有什么問(wèn)題 你需要什么結(jié)果
如果余的小數(shù)想取整,那可以套個(gè)取整函數(shù) 進(jìn)ceil() 舍floor() 四舍五入round() 截取trunc()
接收字符返回字符或數(shù)值時(shí)可以使用dual偽表
1、把小寫(xiě)字符轉(zhuǎn)換成大寫(xiě)
select supper(“smi”) form dual
2、把大寫(xiě)轉(zhuǎn)換成小寫(xiě)
lower(“SMI”)
3、首字母大寫(xiě)
initcap(“smi”)
4、字符串的連接可以使用concat,也可以使用? ? 建議使用
concat(“hello”“world”) 結(jié)果為helloworld
5、字符串的截取,使用substr,第一個(gè)參數(shù)為字符串,第二個(gè)參數(shù)是索引,第三個(gè)參數(shù)結(jié)束索引(開(kāi)始索引使用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、如:查詢(xún)員工進(jìn)入公司的走數(shù)
(sysdate - 入職日期)/7
注:當(dāng)前日期查詢(xún)select sysdate form dual
2、查詢(xún)所有員工進(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ù)
如:將所有員工的入職日期的年、月分開(kāi)
注:在劃分時(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ù)字
如果想在錢(qián)上加上國(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)換成日期類(lèi)型
to_date(“1997-05-12”,“YYYY-mm-dd”)? 1997/05/12
1、空值處理 nvl
如果在查詢(xún)的時(shí)候存在空值的情況可以使用
nvl(comm,0) 當(dāng)comm的列值為空時(shí),用0代替
2、decode函數(shù)
該函數(shù)類(lèi)似于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 其他
SQLServer和Oracle的常用函數(shù)對(duì)比
1.絕對(duì)值
S:select abs(-1) value
O:select abs(-1) value from dual
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.取整(?。?/p>
S:select floor(-1.001) value
O:select floor(-1.001) value from dual
4.取整(截?。?/p>
S:select cast(-1.002 as int) value
O:select trunc(-1.002) value from dual
5.四舍五入
S:select round(1.23456,4) value 1.23460
O:select round(1.23456,4) value from dual 1.2346
6.e為底的冪
S:select Exp(1) value 2.7182818284590451
O:select Exp(1) value from dual 2.71828182
7.取e為底的對(duì)數(shù)
S:select log(2.7182818284590451) value 1
O:select ln(2.7182818284590451) value from dual; 1
8.取10為底對(duì)數(shù)
S:select log10(10) value 1
O:select log(10,10) value from dual; 1
9.取平方
S:select SQUARE(4) value 16
O:select power(4,2) value from dual 16
10.取平方根
S:select SQRT(4) value 2
O:select SQRT(4) value from dual 2
11.求任意數(shù)為底的冪
S:select power(3,4) value 81
O:select power(3,4) value from dual 81
12.取隨機(jī)數(shù)
S:select rand() value
O:select sys.dbms_random.value(0,1) value from dual;
13.取符號(hào)
S:select sign(-8) value -1
O:select sign(-8) value from dual -1
----------數(shù)學(xué)函數(shù)
14.圓周率
S:SELECT PI() value 3.1415926535897931
O:不知道
15.sin,cos,tan 參數(shù)都以弧度為單位
例如:select sin(PI()/2) value 得到1(SQLServer)
16.Asin,Acos,Atan,Atan2 返回弧度
17.弧度角度互換(SQLServer,Oracle不知道)
DEGREES:弧度-〉角度
RADIANS:角度-〉弧度
---------數(shù)值間比較
18. 求集合最大值
S:select max(value) value from
(select 1 value
union
select -2 value
union
select 4 value
union
select 3 value)a
O:select greatest(1,-2,4,3) value from dual
19. 求集合最小值
S:select min(value) value from
(select 1 value
union
select -2 value
union
select 4 value
union
select 3 value)a
O:select least(1,-2,4,3) value from dual
20.如何處理null值(F2中的null以10代替)
S:select F1,IsNull(F2,10) value from Tbl
O:select F1,nvl(F2,10) value from Tbl
--------數(shù)值間比較
21.求字符序號(hào)
S:select ascii('a') value
O:select ascii('a') value from dual
22.從序號(hào)求字符
S:select char(97) value
O:select chr(97) value from dual
23.連接
S:select '11'+'22'+'33' value
O:select CONCAT('11','22')||33 value from dual
23.子串位置 --返回3
S:select CHARINDEX('s','sdsq',2) value
O:select INSTR('sdsq','s',2) value from dual
23.模糊子串的位置 --返回2,參數(shù)去掉中間%則返回7
S:select patindex('%d%q%','sdsfasdqe') value
O:oracle沒(méi)發(fā)現(xiàn),但是instr可以通過(guò)第四霾問(wèn)?刂瞥魷執(zhí)問(wèn)?BR select INSTR('sdsfasdqe','sd',1,2) value from dual 返回6
24.求子串
S:select substring('abcd',2,2) value
O:select substr('abcd',2,2) value from dual
25.子串代替 返回aijklmnef
S:SELECT STUFF('abcdef', 2, 3, 'ijklmn') value
O:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual
26.子串全部替換
S:沒(méi)發(fā)現(xiàn)
O:select Translate('fasdbfasegas','fa','我' ) value from dual
27.長(zhǎng)度
S:len,datalength
O:length
28.大小寫(xiě)轉(zhuǎn)換 lower,upper
29.單詞首字母大寫(xiě)
S:沒(méi)發(fā)現(xiàn)
O:select INITCAP('abcd dsaf df') value from dual
30.左補(bǔ)空格(LPAD的第一個(gè)參數(shù)為空格則同space函數(shù))
S:select space(10)+'abcd' value
O:select LPAD('abcd',14) value from dual
31.右補(bǔ)空格(RPAD的第一個(gè)參數(shù)為空格則同space函數(shù))
S:select 'abcd'+space(10) value
O:select RPAD('abcd',14) value from dual
32.刪除空格
S:ltrim,rtrim
O:ltrim,rtrim,trim
33. 重復(fù)字符串
S:select REPLICATE('abcd',2) value
O:沒(méi)發(fā)現(xiàn)
34.發(fā)音相似性比較(這兩個(gè)單詞返回值一樣,發(fā)音相同)
S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')
O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dual
SQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比較soundex的差
返回0-4,4為同音,1最高
--------------日期函數(shù)
35.系統(tǒng)時(shí)間
S:select getdate() value
O:select sysdate value from dual
36.前后幾日
直接與整數(shù)相加減
37.求日期
S:select convert(char(10),getdate(),20) value
O:select trunc(sysdate) value from dual
select to_char(sysdate,'yyyy-mm-dd') value from dual
38.求時(shí)間
S:select convert(char(8),getdate(),108) value
O:select to_char(sysdate,'hh24:mm:ss') value from dual
39.取日期時(shí)間的其他部分
S:DATEPART 和 DATENAME 函數(shù) (第一個(gè)參數(shù)決定)
O:to_char函數(shù) 第二個(gè)參數(shù)決定
參數(shù)---------------------------------下表需要補(bǔ)充
year yy, yyyy
quarter qq, q (季度)
month mm, m (m O無(wú)效)
dayofyear dy, y (O表星期)
day dd, d (d O無(wú)效)
week wk, ww (wk O無(wú)效)
weekday dw (O不清楚)
Hour hh,hh12,hh24 (hh12,hh24 S無(wú)效)
minute mi, n (n O無(wú)效)
second ss, s (s O無(wú)效)
millisecond ms (O無(wú)效)
----------------------------------------------
40.當(dāng)月最后一天
S:不知道
O:select LAST_DAY(sysdate) value from dual
41.本星期的某一天(比如星期日)
S:不知道
O:SELECT Next_day(sysdate,7) vaule FROM DUAL;
42.字符串轉(zhuǎn)時(shí)間
S:可以直接轉(zhuǎn)或者select cast('2004-09-08'as datetime) value
O:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;
43.求兩日期某一部分的差(比如秒)
S:select datediff(ss,getdate(),getdate()+12.3) value
O:直接用兩個(gè)日期相減(比如d1-d2=12.3)
SELECT (d1-d2)*24*60*60 vaule FROM DUAL;
44.根據(jù)差值求新的日期(比如分鐘)
S:select dateadd(mi,8,getdate()) value
O:SELECT sysdate+8/60/24 vaule FROM DUAL;
45.求不同時(shí)區(qū)時(shí)間
S:不知道
O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL;
-----時(shí)區(qū)參數(shù),北京在東8區(qū)應(yīng)該是Ydt-------
AST ADT 大西洋標(biāo)準(zhǔn)時(shí)間
BST BDT 白令海標(biāo)準(zhǔn)時(shí)間
CST CDT 中部標(biāo)準(zhǔn)時(shí)間
EST EDT 東部標(biāo)準(zhǔn)時(shí)間
GMT 格林尼治標(biāo)準(zhǔn)時(shí)間
HST HDT 阿拉斯加—夏威夷標(biāo)準(zhǔn)時(shí)間
MST MDT 山區(qū)標(biāo)準(zhǔn)時(shí)間
NST 紐芬蘭標(biāo)準(zhǔn)時(shí)間
PST PDT 太平洋標(biāo)準(zhǔn)時(shí)間
YST YDT YUKON標(biāo)準(zhǔn)時(shí)間
1、?在計(jì)算機(jī)中,打開(kāi)Oracle的連接程序,用新建的數(shù)據(jù)庫(kù)管理員,選擇【SQL工作表】。
2、?? 接著,在【Oracle服務(wù)器】的窗口上,在輸入窗口中輸入SQL查詢(xún)語(yǔ)句,并單擊【執(zhí)行】按鈕,可以看到表格當(dāng)前的數(shù)據(jù)。
3、?然后,在【SQL工作表】的窗口上,輸入取子串函數(shù)的SQL語(yǔ)句,可以作為參考。
4、接著,在【SQL工作表】的窗口上,輸入取子串函數(shù)的SQL語(yǔ)句,并單擊【執(zhí)行】按鈕。
5、?然后,在【SQL工作表】的窗口上,可以看到表格顯示的數(shù)據(jù)。
6、最后,在【SQL工作表】的窗口上,修改取子串函數(shù)的參數(shù),執(zhí)行SQL語(yǔ)句,就完成了。
當(dāng)前題目:oracle中如何取整,oracle怎么取整
標(biāo)題鏈接:http://muchs.cn/article12/hchodc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、網(wǎng)站設(shè)計(jì)公司、電子商務(wù)、自適應(yīng)網(wǎng)站、面包屑導(dǎo)航、全網(wǎng)營(yíng)銷(xiāo)推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):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í)