`

区分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与SQL server的语法差异总结

    - SQL Server函数不支持OUT参数,不支持在函数内部进行数据的增删改操作,也不支持动态SQL。调用函数时,需要在函数名前加上dbo.。 4. **游标**: - Oracle的游标声明使用 `DECLARE cursor 游标名 is select语句`...

    深度对比Oracle与SQL Server

    Oracle以版本号如10g、11g、12c、19c等进行区分,而SQL Server则以年份命名,如SQL Server 2008、2012、2016、2019等。每个新版本都会带来性能提升、新功能和增强的安全性。 3. **实例、数据库和表空间**: 在...

    Oracle与SQLServer的SQL语法差异总结1

    Oracle 对字符区分大小写,默认对字符不区分大小写,也可以修改数据库配置支持区分大小写,而 SQL Server 不区分大小写。 序列 Oracle 中有序列 sequence 对象,无自动增长列,而 SQL Server 中无序列对象,表中有...

    Oracle与SQLServer的SQL语法差异总结.docx

    自定义函数的定义上,Oracle同样使用`CREATE OR REPLACE FUNCTION`,支持动态SQL和对数据的增删改操作,而SQL Server的函数不支持出参,也不支持动态SQL。调用时,Oracle直接使用函数名,而SQL Server需在函数名前...

    SQLServer与Oracle语法差异汇总.docx

    在IT行业中,数据库管理系统是核心组件之一,Oracle和SQL Server是两种广泛应用的关系型数据库系统。它们在语法上有诸多差异,这些差异主要体现在存储过程、自定义函数、游标、变量、赋值、语句结束符以及大小写敏感...

    Sqlserver、Oracle、MySql、PostgreSql、SqlLite数据库差异

    - **Sqlserver**、**Oracle**、**MySql**、**PostgreSql** 和 **SqlLite** 都提供了丰富的内置函数支持,包括数学、日期时间、字符串处理等多方面功能。 #### 五、分页 分页是数据库中常见的需求之一,不同的...

    Oracle与SQLserver的区别.docx

    索引方面,Oracle 提供多种类型的索引,包括 B+树、位图、函数索引等,而 SQL Server 区分聚集和非聚集索引。 事务处理上,Oracle 采用定点回滚,支持保存点以精确控制事务。SQL Server 则在事务失败时回滚到事务...

    Oracle_SQL_Server.rar_oracle

    - **SQL Server** 有 INT、VARCHAR、DATETIME、TIMESTAMP 等类型,其 DATETIME 区分日期和时间部分,而 TIMESTAMP 类型在 SQL Server 中表示版本信息而非日期时间。 3. **事务管理**: - **Oracle** 的事务控制...

    oracle客户端sqldeveloper-20.2.0.175.1842-x64

    它支持多种数据库连接类型,不仅限于Oracle数据库,还包括SQL Server、MySQL、DB2等。通过其直观的用户界面,用户可以方便地执行SQL语句,管理数据库对象,以及进行数据迁移和数据同步。 2. 版本信息: 版本号20.2...

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

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

    深入浅析Orcale的nvl函数和SQL Server的isnull函数

    Oracle数据库系统提供了NVL和NVL2函数,而SQL Server则有ISNULL函数来处理这种情况。下面我们将深入探讨这些函数的工作原理、用法以及它们之间的差异。 1. Oracle的NVL函数 Oracle的NVL函数用于处理NULL值,其语法...

    sql server提示插件

    2. **语法高亮和错误检查**:通过颜色区分不同类型的SQL元素,使代码更易于阅读。同时,插件会实时检测语法错误,帮助用户在编写过程中即时发现并修正问题。 3. **智能提示**:在编写复杂查询时,插件可以提供智能...

    SQLServer数据库系统概述.ppt

    6. 数据仓库功能:这是在高端数据库系统如Oracle中才有的特性,SQL Server也具备此功能,用于数据分析和决策支持。 SQL Server 2000提供了不同版本来满足不同用户的需求,包括: - 企业版:适用于大型企业,提供...

    sql_函数大全_比较常用的一些函数整理.pdf

    以上知识点涵盖了比较常用的一些SQL函数,分别针对字符串处理、数值运算、数据类型转换、日期时间处理和条件逻辑等各个方面,这些函数是进行数据库查询和数据处理时不可或缺的工具。在实际开发过程中,熟练掌握这些...

    Mysql Oracle 数据库开发设计及使用规范

    - 包内过程和函数的命名遵循前述存储过程/函数章节的规定。 **总结** 以上规范涵盖了数据库设计的关键方面,包括数据设计的基本原则、字段设计的具体要求以及各种数据库对象的命名规范。遵循这些规范可以帮助开发...

    oracle sql集合

    #### 五、如何区分Oracle 64-bit 和 32-bit 版本 可以通过SQL*Plus命令来确定Oracle版本是32位还是64位。具体步骤如下: ```sql SQL> / as sysdba SQL> select * from v$version; ``` 输出结果中会包含版本信息,...

    SQL Server 2005分区表技术的研究与实现.pdf

    在SQL Server的历史版本中,分区的实现和优化经历了多个阶段。在早期版本中,分区技术实现复杂且未能提升性能。而从SQL Server 2000开始,增加了对分区视图的数据修改支持,并改善了查询性能。SQL Server 2005进一步...

    通过创建SQLServer 2005到 Oracle10g 的链接服务器实现异构数据库数据转换方案

    在实际操作中,确保所有涉及Oracle的SQL语句中的表名和列名都使用大写字母,因为Oracle默认是区分大小写的。同时,正确配置Oracle的数据源(如示例中的`INPLAN`和`ERP`),确保能够连接到正确的Oracle实例和SID。 ...

    oracle行转列

    - oracle+110个常用函数.doc:涵盖了Oracle中的大量函数,这些函数对于日常查询和数据处理至关重要。 - oracle行转列.doc:再次强调了Oracle中的行转列技术,可能包括了不同的实现方法和实例。 - oracle_行转列的...

Global site tag (gtag.js) - Google Analytics