CSDN技術中心 SQLServer和Oracle常用函數對比

數學函數  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 ...
糊到蘋果臉上的「新式積分牆」廣告

TAG:技術 | 函數 | 對比 | CSDN | Oracle |