`

区分Oracle和SQL Server常用函数

 
阅读更多

一、数学函数
  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:select acos(-1) PI from dual; select exp(1) e from dual;

  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
  S:select patindex(''%d%q%'',''sdsfasdqe'') value
  O: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:没发现
  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.取日期时间的其他部分
  S:DATEPART 和 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标准时间


本篇文章来源于 黑基网-中国最大的网络安全站点 原文链接:http://web.hackbase.com/tech/2011-11-16/65546.html

分享到:
评论

相关推荐

    ORACLE,mysql,sqlserver,sybase数据库装文本软件

    2或者sqlserver, mssqlserver数据库,不区分大小写,需java1.6及以上版本 3或者mysql, mysql数据库,不区分大小写,需java1.5及以上版本 4或者sybase, sybase数据库,不区分大小写(暂未测试) -url 数据库连接的url....

    oracle用什么SQL语句判断表存不存在

    SQL SERVER用来判断表或视图存在的语句在ORACLE中不能用,请问该怎么写。 谢谢。 提问者: – 最佳答案 exists(select tname from tab where tname =’TABLENAME’) 记得表名要大写,因为ORACLE是区分大小写的,所有...

    SQL注入攻击与防御

    2.3.1 区分数字和字符串 46 2.3.2 内联SQL注入 46 2.3.3 终止式SQL注入 51 2.3.4 时间延迟 59 2.4 自动寻找SQL注入 60 2.5 本章小结 68 2.6 快速解决方案 68 2.7 常见问题解答 69 第3章 复查代码中的SQL注入 71 3.1...

    SQL注入攻击与防御(安全技术经典译丛)

     2.3.1 区分数字和字符串  2.3.2 内联SQL注入  2.3.3 终止式SQL注入  2.3.4 时间延迟  2.4 自动寻找SQL注入  2.5 本章小结  2.6 快速解决方案  2.7 常见问题解答 第3章 复查代码中的SQL注入  3.1 ...

    SQL语法大全

    3. SQL常用命令使用方法: (1) 数据记录筛选: sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 like \'%字段值%\' order by 字段名 [desc]" ...

    asp.net知识库

    Oracle中PL/SQL单行函数和组函数详解 mssql+oracle Oracle编程的编码规范及命名规则 Oracle数据库字典介绍 0RACLE的字段类型 事务 CMT DEMO(容器管理事务演示) 事务隔离性的一些基础知识 在组件之间实现事务和异步...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例037 区分单引号和双引号 68 实例038 动态输出JavaScript代码 69 实例039 当数字遇到了字符串 70 实例040 PHP程序员的基础——变量的应用 72 实例041 打印系统环境变量信息print_r($_ENV) 73 实例042 使用可变...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例037 区分单引号和双引号 68 实例038 动态输出JavaScript代码 69 实例039 当数字遇到了字符串 70 实例040 PHP程序员的基础——变量的应用 72 实例041 打印系统环境变量信息print_r($_ENV) 73 实例042 使用可变...

    Java面试宝典2020修订版V1.0.1.doc

    35、MySQL、SqlServer、oracle写出字符存储、字符串转时间 52 36、update语句可以修改结果集中的数据吗? 53 37、oracle如何设置主键自动增长? 53 38、表连接、子查询的区别是什么?它们可以相互转化吗?你倾向于用...

    C#编程经验技巧宝典

    4 <br>0008 为程序设置版本和帮助信息 4 <br>0009 设置Windows应用程序启动窗体 5 <br>0010 设置Web应用程序起始页 5 <br>0011 如何设置程序的出错窗口 5 <br>0012 如何进行程序调试 6 ...

    数据库物理设计.pdf

    ⼀、选择哪种数据库: Oracle和SqlServer是商业数据库。(适合企业级项⽬) mysql和pgsql是开源数据库。(适合互联⽹项⽬) ⼆、表及字段的命名规范: 1、可读性原则。通过⼤⼩写格式化名字。如CustAddress⽽不是...

    千方百计笔试题大全

    234、存储过程和函数的区别 55 235、事务是什么? 55 236、游标的作用?如何知道游标已经到了最后? 55 237、触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。 56 238、EJB容器...

    java面试宝典

    234、存储过程和函数的区别 55 235、事务是什么? 55 236、游标的作用?如何知道游标已经到了最后? 55 237、触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。 56 238、EJB容器...

    java 面试题 总结

    从内存方面来看, Stateful Session Bean 与 Stateless Session Bean 比较, Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态。 9、...

    超级有影响力霸气的Java面试题大全文档

    从内存方面来看, Stateful Session Bean 与 Stateless Session Bean 比较, Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态。 12、...

    最新Java面试宝典pdf版

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    Java面试笔试资料大全

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    Java面试宝典2010版

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

Global site tag (gtag.js) - Google Analytics