CSDN技術中心 SQLServer和Oracle常用函數對比
07-21
數學函數 1.絕對值 S:selectabs(-1)value O:selectabs(-1)valuefromdual 2.取整(大) S:selectceiling(-1.001)value O:selectceil(-1.001)valuefromdual 3.取整(小) S:selectfloor(-1.001)value O:selectfloor(-1.001)valuefromdual 4.取整(截取) S:selectcast(-1.002asint)value O:selecttrunc(-1.002)valuefromdual 5.四捨五入 S:selectround(1.23456,4)value1.23460 O:selectround(1.23456,4)valuefromdual1.2346 6.e為底的冪 S:selectExp(1)value2.7182818284590451 O:selectExp(1)valuefromdual2.71828182 7.取e為底的對數 S:selectlog(2.7182818284590451)value1 O:selectln(2.7182818284590451)valuefromdual;1 8.取10為底對數 S:selectlog10(10)value1 O:selectlog(10,10)valuefromdual;1 9.取平方 S:selectSQUARE(4)value16 O:selectpower(4,2)valuefromdual16 10.取平方根 S:selectSQRT(4)value2 O:selectSQRT(4)valuefromdual2 11.求任意數為底的冪 S:selectpower(3,4)value81 O:selectpower(3,4)valuefromdual81 12.取隨機數 S:selectrand()value O:selectsys.dbms_random.value(0,1)valuefromdual; 13.取符號 S:selectsign(-8)value-1 O:selectsign(-8)valuefromdual-1 14.圓周率 S:SELECTPI()value3.1415926535897931 O:不知道 15.sin,cos,tan參數都以弧度為單位 例如:selectsin(PI()/2)value得到1(SQLServer) 16.Asin,Acos,Atan,Atan2返回弧度 17.弧度角度互換(SQLServer,Oracle不知道) DEGREES:弧度-〉角度 RADIANS:角度-〉弧度數值間比較 18.求集合最大值 S:selectmax(value)valuefrom (select1value union select-2value union select4value union select3value)a O:selectgreatest(1,-2,4,3)valuefromdual 19.求集合最小值 S:selectmin(value)valuefrom (select1value union select-2value union select4value union select3value)a O:selectleast(1,-2,4,3)valuefromdual 20.如何處理null值(F2中的null以10代替) S:selectF1,IsNull(F2,10)valuefromTbl O:selectF1,nvl(F2,10)valuefromTbl 21.求字元序號 S:selectascii(『a『)value O:selectascii(『a『)valuefromdual 22.從序號求字元 S:selectchar(97)value O:selectchr(97)valuefromdual 23.連接 S:select『11『+『22『+『33『value O:selectCONCAT(『11『,『22『) 33valuefromdual23.子串位置--返回3 S:selectCHARINDEX(『s『,『sdsq『,2)value O:selectINSTR(『sdsq『,『s『,2)valuefromdual 23.模糊子串的位置--返回2,參數去掉中間%則返回7 S:selectpatindex(『%d%q%『,『sdsfasdqe『)value O:oracle沒發現,但是instr可以通過第四個參數控制出現次數 selectINSTR(『sdsfasdqe『,『sd『,1,2)valuefromdual返回6 24.求子串 S:selectsubstring(『abcd『,2,2)value O:selectsubstr(『abcd『,2,2)valuefromdual 25.子串代替返回aijklmnef S:SELECTSTUFF(『abcdef『,2,3,『ijklmn『)value O:SELECTReplace(『abcdef『,『bcd『,『ijklmn『)valuefromdual 26.子串全部替換 S:沒發現 O:selectTranslate(『fasdbfasegas『,『fa『,『我『)valuefromdual 27.長度 S:len,datalength O:length 28.大小寫轉換lower,upper 29.單詞首字母大寫 S:沒發現 O:selectINITCAP(『abcddsafdf『)valuefromdual 30.左補空格(LPAD的第一個參數為空格則同space函數) S:selectspace(10)+『abcd『value O:selectLPAD(『abcd『,14)valuefromdual 31.右補空格(RPAD的第一個參數為空格則同space函數) S:select『abcd『+space(10)value O:selectRPAD(『abcd『,14)valuefromdual 32.刪除空格 S:ltrim,rtrim O:ltrim,rtrim,trim 33.重複字元串 S:selectREPLICATE(『abcd『,2)value O:沒發現 34.發音相似性比較(這兩個單詞返回值一樣,發音相同) S:SELECTSOUNDEX(『Smith『),SOUNDEX(『Smythe『) O:SELECTSOUNDEX(『Smith『),SOUNDEX(『Smythe『)fromdual SQLServer中用SELECTDIFFERENCE(『Smithers『,『Smythers『)比較soundex的差 返回0-4,4為同音,1最高日期函數 35.系統時間 S:selectgetdate()value O:selectsysdatevaluefromdual 36.前後幾日 直接與整數相加減 37.求日期 S:selectconvert(char(10),getdate(),20)value O:selecttrunc(sysdate)valuefromdual selectto_char(sysdate,『yyyy-mm-dd『)valuefromdual 38.求時間 S:selectconvert(char(8),getdate(),108)value O:selectto_char(sysdate,『hh24:mm:ss『)valuefromdual39.取日期時間的其他部分 S:DATEPART和DATENAME函數(第一個參數決定) O:to_char函數第二個參數決定 參數---------------------------------下表需要補充 yearyy,yyyy quarterqq,q(季度) monthmm,m(mO無效) dayofyeardy,y(O表星期) daydd,d(dO無效) weekwk,ww(wkO無效) weekdaydw(O不清楚) Hourhh,hh12,hh24(hh12,hh24S無效) minutemi,n(nO無效) secondss,s(sO無效) millisecondms(O無效) ---------------------------------------------- 40.當月最後一天 S:不知道 O:selectLAST_DAY(sysdate)valuefromdual 41.本星期的某一天(比如星期日) S:不知道 O:SELECTNext_day(sysdate,7)vauleFROMDUAL; 42.字元串轉時間 S:可以直接轉或者selectcast(『2004-09-08『asdatetime)value O:SELECTTo_date(『2004-01-0522:09:38『,『yyyy-mm-ddhh24-mi-ss『)vauleFROMDUAL; 43.求兩日期某一部分的差(比如秒) S:selectdatediff(ss,getdate(),getdate()+12.3)value O:直接用兩個日期相減(比如d1-d2=12.3) SELECT(d1-d2)*24*60*60vauleFROMDUAL; 44.根據差值求新的日期(比如分鐘) S:selectdateadd(mi,8,getdate())value O:SELECTsysdate+8/60/24vauleFROMDUAL; 45.求不同時區時間 S:不知道 O:SELECTNew_time(sysdate,『ydt『,『gmt『)vauleFROMDUAL; -----時區參數,北京在東8區應該是Ydt------- ASTADT大西洋標準時間 BSTBDT白令海標準時間 CSTCDT中部標準時間 ESTEDT東部標準時間 GMT格林尼治標準時間 HSTHDT阿拉斯加?夏威夷標準時間 MSTMDT山區標準時間 NST紐芬蘭標準時間 PSTPDT太平洋標準時間 YSTYDTYUKON標準時間
推薦閱讀:
推薦閱讀:
※《蒼翼之刃》——小CP的全球競爭力
※《我叫MT2》:一款產品和一家公司的野望,以及暴雪的聲明
※告訴我她是順時針還是逆時針旋轉,快被這個女人逼瘋了 ^_^!! - Oracle 10g ...
※糊到蘋果臉上的「新式積分牆」廣告