`

SQL SERVER 与ORACLE常用函数比较(转)

阅读更多

数学函数

序号

函数功能

SQL Server用法

Oracle用法

1

绝对值

select abs(-1) value

select abs(-1) value from dual

2

取整()

select ceiling(-1.001) value

select ceil(-1.001) value from dual

3

取整()

select floor(-1.001) value

select floor(-1.001) value from dual

4

取整(截取)

select cast(-1.002 as int) value

select trunc(-1.002) value from dual

5

四舍五入

select round(1.23456,4) value

select round(1.23456,4) value from dual

6

为底的幂

select Exp(1) value

select Exp(1) value from dual

7

e为底的对数

select log(2.7182818284590451)

select ln(2.7182818284590451)

8

10为底对数

select log10(10)

select log(10,10)

9

取平方

select SQUARE(4)

select power(4,2)

10

取平方根

select SQRT(4)

select SQRT(4)

11

求任意数为底的幂

select power(3,4)

select power(3,4)

12

取随机数

select rand()

select sys.dbms_random.value(0,1)

13

取符号

select sign(-8)

select sign(-8)

14

圆周率

SELECT PI()

 

15

sin,cos,tan

select sin(PI()/2)

select sin(PI()/2)

16

求集合最大值

select max(value) value from
  (select 1 value
  union
  select -2 value
  union
  select 4 value
  union
  select 3 value)a

select greatest(1,-2,4,3) value from dual

17

求集合最小值

select min(value) value from
  (select 1 value
  union
  select -2 value
  union
  select 4 value
  union
  select 3 value)a

select least(1,-2,4,3) value from dual

18

处理null(F2中的null10代替)

select F1,IsNull(F2,10) value from Tbl

select F1,nvl(F2,10) value from Tbl

 

数值间比较

序号

函数功能

SQL Server用法

Oracle用法

1

求字符序号

select ascii('a')

select ascii('a') value from dual

2

从序号求字符

select char(97) value

select chr(97) value from dual

3

连接

select '11'+'22'+'33' value

select CONCAT('11','22')||33 value from dual

4

子串位置

select charindex('s','sdsq',2) value

select instr('sdsq','s',2) value from dual

5

模糊子串的位(返回2,参数去掉中间%则返回7)

select patindex('%d%q%','sdsfasdqe') value

select INSTR('sdsfasdqe','sd',1,2) value from dual 返回6

6

求子串

select substring('abcd',2,2) value

select substr('abcd',2,2) value from dual

7

子串代替(返回aijklmnef)

SELECT STUFF('abcdef', 2, 3, 'ijklmn') value

SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual

8

子串全部替换

没发现

select Translate('fasdbfasegas','fa','' ) value from dual

9

长度

Lendatalength

length

10

大小写转换

lower,upper

lower,upper

11

单词首字母大写

没发现

select INITCAP('abcd dsaf df') value from dual

12

左补空格

select space(10)+'abcd' value

select LPAD('abcd',14) value from dual

13

右补空格

select 'abcd'+space(10) value

select RPAD('abcd',14) value from dual

14

删除空格

ltrim,rtrim

ltrim,rtrim,trim

15

重复字符串

select REPLICATE('abcd',2) value

lpad('d',6,'0'),rpad(d,6,0)

16

发音相似性比较(这两个单词返回值一样,发音相同)

SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')

SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dual

 

日期函数

序号

函数功能

SQL Server用法

Oracle用法

1

系统时间

select getdate() value

select sysdate value from dual

 

前后几日

直接与整数相加减

直接与整数相加减

 

求日期

select convert(char(10),getdate(),20) value

select trunc(sysdate) value from dual select to_char(sysdate,'yyyy-mm-dd') value from dual

 

求时间

select convert(char(8),getdate(),108) value

select to_char(sysdate,'hh24:mm:ss') value from dual

 

取日期时间的其他部分

DATEPART  DATENAME 函数 (第一个参数决定)

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无效)

 

当月最后一天

没发现

select lsat_day(sysdate) value from dual

 

本星期的某一天(比如星期日)

没发现

select Next_day(sysdate,7) vaule FROM DUAL;

 

字符串转时间

可以直接转或者select cast('2004-09-08'as datetime) value

select To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;

 

求两日期某一部分的差(比如秒)

select datediff(ss,getdate(),getdate()+12.3) value

直接用两个日期相减(比如d1-d2=12.3
  SELECT (d1-d2)*24*60*60 vaule FROM DUAL;

 

根据差值求新的日期(比如分钟)

select dateadd(mi,8,getdate()) value

SELECT sysdate+8/60/24 vaule FROM DUAL;


分享到:
评论

相关推荐

    SQLServer和Oracle常用函数对比

    本文将详细探讨在SQLServer与Oracle数据库系统中常用的数学函数及字符串处理函数之间的差异。对于数据分析师、数据库管理员以及软件开发者而言,掌握这两种数据库管理系统之间的不同之处至关重要,尤其是在进行跨...

    SQLServer和Oracle常用函数对比.txt

    本文将对SQLServer与Oracle数据库系统中常用的数学与字符串处理函数进行详细的对比分析。通过具体的示例和解释,帮助读者更好地理解两种数据库管理系统在处理相似需求时的不同实现方式。 #### 数学函数 1. **...

    SQL SEVER与ORACLE常用函数比较

    在SQL Server和Oracle数据库系统中,...以上就是SQL Server和Oracle中常用数学函数的比较,理解这些函数对于在两者之间迁移代码或进行跨平台开发非常有帮助。在实际使用中,应根据具体需求和数据库系统选择合适的函数。

    sqlserver自动生成sql语句工具sqlserver转oracle

    描述中提到的"sqlserver转oracle"则是指将SQL Server数据库的内容迁移到Oracle数据库的过程。这个过程涉及到SQL语法的转换,因为SQL Server和Oracle虽然都遵循SQL标准,但各自的语法特性和函数库有所不同。例如,SQL...

    SQL Server和Oracle常用函数区别

    Oracle中的对应函数分别是`CEIL()`和`FLOOR()`,使用方式与SQL Server类似,但需加上`FROM DUAL`。 3. 截取整数: SQL Server中,将浮点数截断成整数可以使用`CAST()`函数,如`SELECT CAST(-1.002 AS INT) value`。...

    SQLServer和Oracle常用函数比较

    ### SQLServer和Oracle常用函数比较 #### 数学函数 在SQLServer与Oracle中,数学函数是执行各种数学操作的关键工具,对于数据处理至关重要。以下是一些常用的数学函数及其在两个数据库系统中的应用。 ##### ...

    SQLServer和Oracle的常用函数对比

    本文将基于给定文件信息,深入探讨和对比SQLServer与Oracle中的一些常用函数,这些函数涵盖了数学运算、数值处理、字符串操作等多个方面,对于数据库开发者和管理员而言,掌握这些函数的使用方法是提升工作效率的...

    sql server和oracle中常用函数的比较

    以下是对给定内容中提及的SQL Server与Oracle函数的详细对比: ### 数学函数 1. **绝对值函数** - **SQL Server**: 使用`ABS()`函数来获取数值的绝对值。 - **Oracle**: 同样使用`ABS()`函数,但查询语句需包含`...

    SQL Server与Oracle常用函数对比

    本篇文章将深入探讨SQL Server与Oracle中的一些常见函数,并进行对比分析,旨在帮助数据库管理员和开发人员更好地理解和应用这些功能。 1. **字符串处理函数**: - SQL Server中的`LEN()`函数用于计算字符串的长度...

    sqlserver常用函数 SQLServer和Oracle常用函数对比.pdf

    ### SQLServer与Oracle常用函数对比分析 在数据库领域,SQLServer和Oracle是两种非常流行的数据库管理系统,它们各自拥有一套丰富的内置函数来帮助用户高效地完成数据查询、处理任务。本文将详细介绍这两种数据库...

    sqlserver实现Oracle中Lpad和Rpad函数

    sqlserver实现Oracle中Lpad和Rpad函数

    sql server 和oracle函数

    以上对比总结了 SQL Server 与 Oracle 数据库系统中常用数学函数、字符函数的主要异同点。这些函数是数据库操作的基础,熟练掌握它们对于日常开发工作非常重要。希望本篇内容能够帮助读者更好地理解和应用这两个系统...

Global site tag (gtag.js) - Google Analytics