找回密码
 注册
搜索
日志综合审计数据库安全审计运维堡垒机域名&虚拟主机游侠安全网
查看: 3247|回复: 2

oracle与sql

 火... [复制链接]
发表于 2011-2-25 16:13:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
SQL Server和Oracle的常用函数对比
  ---------数学函数
    1.绝对值
    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.取整(小)
    S:select floor(-1.001) value O:select floor(-1.001) value from dual
    4.取整(截取)
    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为底的对数S:select log(2.7182818284590451) value 1 O:select ln(2.7182818284590451)value from dual; 1
    8.取10为底对数
    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.求任意数为底的幂S:select power(3,4) value 81 O:select power(3,4) value from dual 81
    12.取随机数
    S:select rand() value
    O:select sys.dbms_random.value(0,1) value from dual;
    13.取符号
    S:select sign(-8) value -1
    O:select sign(-8) value from dual -1
  ----------三角函数相关
    14.圆周率S:SELECT PI() value 3.1415926535897931
    O:不知道
    15.sin,cos,tan 参数都以弧度为单位
    例如:select sin(PI()/2) value得到1(SQLServer)
    16.Asin,Acos,Atan,Atan2 返回弧度
    17.弧度角度互换(SQLServer,Oracle不知道)
    DEGREES:弧度-〉角度
    RADIANS:角度-〉弧度
  ---------数值间比较
    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
  --------字符串函数 21.求字符序号
    S:select ascii('a') value
    O:select ascii('a') value from dual
    22.从序号求字符
    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,参数去掉中间%则返回7 // rn S:select patindex('%d%q%','sdsfasdqe') value Oracle没发现,但是instr可以通过第四个参数控制出现次数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:Replace
    O:select Translate('fasdbfasegas','fa','我' ) value from dual
    27.长度S:len,datalength
    O:length
    28.大小写转换 lower,upper
   29.单词首字母大写
    S:没发现
    O:select INITCAP('abcd dsaf df') value from dual
    30.左补空格(LPAD的第一个参数为空格则同space函数)
    S:select space(10)+'abcd' value
    O:select LPAD('abcd',14) value from dual
    31.右补空格(RPAD的第一个参数为空格则同space函数)
    S:select 'abcd'+space(10) value
    O:select RPAD('abcd',14) value from dual
    32.删除空格S:ltrim,rtrim O:ltrim,rtrim,trim
    33. 重复字符串S:select REPLICATE('abcd',2) value
    O:没发现
    34.发音相似性比较(这两个单词返回值一样,发音相同) S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dual SQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比较soundex的差返回0-4,4为同音,1最高
  --------------日期函数
    35.系统时间
    S:select getdate() value
    O:select sysdate value from dual
    36.前后几日
    直接与整数相加减
    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.求时间S:select convert(char(8),getdate(),108) value O:select to_char(sysdate,'hh24:mm:ss') value from dual
    39.取日期时间的其他部分
    SATEPART和DATENAME函数(第一个参数决定)
    O:to_char函数第二个参数决定
    参数---------------------------------下表需要补充
    year yy, yyyy quarter qq, q (季度) month mm, m (m O无效) dayofyear dy, y (O表星期) day dd, d (d O无效) week wk, ww (wk O无效)
    weekday dw (O不清楚)
    Hour hh,hh12,hh24 (hh12,hh24 S无效) minute mi, n (n O无效) second ss, s (s O无效)
    millisecond ms (O无效)
  ----------------------------------------------
    40.当月最后一天
    S:不知道
    O:select LAST_DAY(sysdate) value from dual
    41.本星期的某一天(比如星期日)
    S:不知道
    O:SELECT Next_day(sysdate,7) vaule FROM DUAL;
    42.字符串转时间
    S:可以直接转或者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:直接用两个日期相减(比如d1-d2=12.3)
    SELECT (d1-d2)*24*60*60 vaule FROM DUAL;
44.根据差值求新的日期(比如分钟)
    S:select dateadd(mi,8,getdate()) value
    O:SELECT sysdate+8/60/24 vaule FROM DUAL;
    45.求不同时区时间
    S:不知道
    O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL;
   -----时区参数,北京在东8区应该是Ydt-------
    AST ADT大西洋标准时间
    BST BDT白令海标准时间
    CST CDT中部标准时间
    EST EDT东部标准时间
    GMT格林尼治标准时间
    HST HDT阿拉斯加—夏威夷标准时间
    MST MDT山区标准时间
    NST纽芬兰标准时间
    PST PDT太平洋标准时间
    YST YDT YUKON标准时间
    Oracle支持的字符函数和它们的Microsoft SQL Server等价函数:
    函数Oracle Microsoft SQL Server
    把字符转换为ASCII ASCII ASCII
    字串连接CONCAT (expressiοn + expressiοn)
    把ASCII转换为字符CHR CHAR
    返回字符串中的开始字符(左起)INSTR CHARINDEX
    把字符转换为小写LOWER LOWER
    把字符转换为大写UPPER UPPER
    填充字符串的左边LPAD N/A
    清除开始的空白LTRIM LTRIM
    清除尾部的空白RTRIM RTRIM
    字符串中的起始模式(pattern)INSTR PATINDEX
    多次重复字符串RPAD REPLICATE
    字符串的语音表示SOUNDEX SOUNDEX
    重复空格的字串RPAD SPACE
    从数字数据转换为字符数据TO_CHAR STR
    子串SUBSTR SUBSTRING
    替换字符REPLACE STUFF
    将字串中的每个词首字母大写INITCAP N/A
    翻译字符串TRANSLATE N/A
    字符串长度LENGTH DATELENGTH or LEN
    列表中最大的字符串GREATEST N/A
    列表中最小的字符串LEAST N/A

回复

使用道具 举报

发表于 2011-4-21 17:04:05 | 显示全部楼层
学习 感谢
回复 支持 反对

使用道具 举报

发表于 2015-4-9 11:34:35 | 显示全部楼层
学习了,谢谢了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|首席信息安全官 ( 陕ICP备11003551号-4 )

GMT+8, 2024-5-21 07:09 , Processed in 0.022805 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表