E库技术学院--您的网络技术顾问! 网站首页素材图片库设计原稿网页模板网站赏析下载中心明星图库E库论坛  
E库技术学院
设为首页
加入收藏
我要投稿
E库首页学院首页 ┊ 图形图象 ┊ 网页设计 ┊ 网络编程 ┊ 数据库 ┊ 服务器 ┊ 建站技术 ┊ 业界新闻 ┊ 作者专栏 ┊ 常用范文 ┊ 预留栏目
  当前位置:学院首页>>数据库教程>>MS SQL教程>>SQLServer和Oracle常用函数对比
SQLServer和Oracle常用函数对比
[ 来源:CSDN | 作者: | 时间:2005-8-30 17:06:17 | 浏览:人次 ]
收藏到新浪ViVi收藏到365KEY收藏到我摘 ┊ 双击滚屏 单击停止

数学函数

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')33valuefromdual

23.子串位置--返回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')valuefromdual

39.取日期时间的其他部分

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标准时间

“SQLServer和Oracle常用函数对比”教程到此结束==>||
 相关教程
☉暂无相关教程
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

投稿作者:  信息来源: CSDN 录入时间: 2005-8-30 17:06:17
投稿信箱: web#iecool.com
设为首页 - 加入收藏 - 关于我们 - 广告服务 - 版权申明 - 友情链接 - 联系方式 - 会员投稿
E库技术学院 © 2004-2005 Edu.IEcool.Com  浙ICP备05015070号