SQLServer与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

24.子串位置 --返回3

代码如下:

S:select CHARINDEX(s,sdsq,2) value
O:select INSTR(sdsq,s,2) value from dual

25.模糊子串的位置 --返回2,参数去掉中间%则返回7

代码如下:

S:select patindex(%d%q%,sdsfasdqe) value
O:oracle没发现,但是instr可以通过第四个参数控制出现次数
select INSTR(sdsfasdqe,sd,1,2) value from dual 返回6

26.求子串

代码如下:

S:select substring(abcd,2,2) value
O:select substr(abcd,2,2) value from dual

27.子串代替 返回aijklmnef

代码如下:

S:SELECT STUFF(abcdef, 2, 3, ijklmn) value
O:SELECT Replace(abcdef, bcd, ijklmn) value from dual

28.子串全部替换

代码如下:

S:没发现
O:select Translate(fasdbfasegas,fa,我 ) value from dual

29.长度

代码如下:

S:len,datalength
O:length

30.大小写转换 lower,upper

31.单词首字母大写

代码如下:

S:没发现
O:select INITCAP(abcd dsaf df) value from dual

32.左补空格(LPAD的第一个参数为空格则同space函数)

代码如下:

S:select space(10)+abcd value
O:select LPAD(abcd,14) value from dual

33.右补空格(RPAD的第一个参数为空格则同space函数)

代码如下:

S:select abcd+space(10) value
O:select RPAD(abcd,14) value from dual

34.删除空格

代码如下:

S:ltrim,rtrim
O:ltrim,rtrim,trim

35. 重复字符串

代码如下:

S:select REPLICATE(abcd,2) value
O:没发现

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

代码如下:

S:SELECT SOUNDEX (Smith), SOUNDEX (Smythe)
O:SELECT SOUNDEX (Smith), SOUNDEX (Smythe) from dual

SQLServer中用SELECT DIFFERENCE(Smithers, Smythers) 比较soundex的差
返回0-4,4为同音,1最高

三、日期函数

37.系统时间

代码如下:

S:select getdate() value
O:select sysdate value from dual

38.前后几日
直接与整数相加减

39.求日期

代码如下:

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

40.求时间

代码如下:

S:select convert(char(8),getdate(),108) value
O:select to_char(sysdate,hh24:mm:ss) value from dual

(0)

相关推荐

  • SQL Server优化50法汇总

    查询速度慢的原因很多,常见如下几种:1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)2.I/O吞吐量小,形成了瓶颈效应.3.没有创建计算列导致查询不优化.4.内存不足5.网络速度慢6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)8.sp_lock, sp_who, 活动的用户查看,原因是读写竞争资源.9.返回了不必要的行和列 10.查询语句不好,没有优化可以通过如下方法来优化查询 :1.把数据.日

  • SQLServer 数据库的数据汇总完全解析(WITH ROLLUP)

    现有表A,内容如下: 编码 仓库 数量 01 A 6 01 B 7 02 A 8 02 B 9 现在想按编码查询出这种格式: 01 A 6 01 B 7 汇总小计: 13 02 A 8 02 B 9 汇总小计: 17 问:该如何实现? 乍一看,好像很容易,用group by好像能实现?但仔细研究下去,你又会觉得group by也是无能为力,总欠缺点什么,无从下手.那么,到底该如何做呢?别急,SQL Server早就帮我们做好了,下面,跟我来. 首先,让我们来看一段话: 在生成包含小计和合计的报表

  • SQLServer中汇总功能的使用GROUPING,ROLLUP和CUBE

    第一次看到这样的SQL语句,看不懂,其中用到了下面的不常用的 聚集函数:GROUPING 用于汇总数据用的运算符: ROLLUP SELECT CASE GROUPING(o.customerid) WHEN 0 THEN o.customerid ELSE  '(Total)' END AS AllCustomersSummary, CASE GROUPING(od.orderid) WHEN 0 THEN od.orderid ELSE -1 END AS IndividualCustome

  • SQL Server页类型汇总+疑问汇总

    SQL Server中包含多种不同类型的页,来满足数据存储的需求.不管是什么类型的页,它们的存储结构都是相同的.每个数据文件都包含相当数量的由8KB组成的页,即每页有8192bytes可用,每页都有96byte用于页头的存储,剩下的空间 才用来存储实际的数据,在页的最后是数据行偏移数组,也可以叫"页槽"数组,我们可以把一个页看做是有一个个方格的书橱,哪行数据占用了哪个槽,都在页尾的位置进行标示,并且页尾数组的写入顺序是倒叙的,这样就可以有效的利用页空间. 由此可以预见,页面上的&quo

  • SQL Server数据汇总五招轻松搞定

    本文我们将讨论如何使用GROUPBY子句来汇总数据. 使用单独列分组 GROUP BY子句通过设置分组条件来汇总数据,在第一个例子中,我在数据库AdventureWork2012中的表 Sales.SalesOrderDetail.中的一列上进行数据分组操作.这个例子以及其他例子都使用数据库AdventureWorks2012,如果你想使用它运行我的代码,你可以点击下载. 下面是第一个示例的源码,在CarrierTrackingNumber列上使用group by子句进行数据分组操作 USE A

  • SQLServer与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

  • jquery常用函数与方法汇总

    1.delay(duration,[queueName]) 设置一个延时来推迟执行队列中之后的项目. jQuery 1.4新增.用于将队列中的函数延时执行.他既可以推迟动画队列的执行,也可以用于自定义队列. duration:延时时间,单位:毫秒 queueName:队列名词,默认是Fx,动画队列. 例: 头部与底部延迟加载动画效果 $(document).ready(function() { $('#header') .css({ 'top':-50 }) .delay(1000).anima

  • Oracle常用函数Trunc及Trunc函数用法讲解

    1. Trunc( date) trunc 以指定的元素截取日期类型的数据 语法:trunc(date,[ format]) date– 日期格式的值 format–日期格式 如'mm','yyyy'等 将date从指定日期格式截取 例如: trunc(sysdate,'yyyy')='01-01月-17'(sysdate='21-11月-17'); --返回今年的第一天 trunc(sysdate,'mm')='01-11月-17'; --返回本月第一天 trunc(sysdate,'d')=

  • PHP实现的oracle分页函数实例

    本文实例讲述了PHP实现的oracle分页函数.分享给大家供大家参考,具体如下: mysql有limit,分页的时候,我们可以用limit 30,40,而oracle没有limit,用其他的方法来代替--rownum. 一.底层方法 /** * 数据连接 */ function connect($db_user, $db_pwd, $db_name, $db_nls) { $this->dbh = oci_connect($db_user, $db_pwd, $db_name, $db_nls)

  • Python打开文件、文件读写操作、with方式、文件常用函数实例分析

    本文实例讲述了Python打开文件.文件读写操作.with方式.文件常用函数.分享给大家供大家参考,具体如下: 打开文件: 在python3中,打开文件的函数是: open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True) 参数说明: file--文件名 mode-打开模式,默认只读模式 buffering--如果buffering的值被设为0,就不会有寄存.如果buff

  • mysql常用函数实例总结【聚集函数、字符串、数值、时间日期处理等】

    本文实例讲述了mysql常用函数.分享给大家供大家参考,具体如下: 本文内容: mysql函数的介绍 聚集函数 avg count max min sum 用于处理字符串的函数 合并字符串函数:concat(str1,str2,str3-) 比较字符串大小函数:strcmp(str1,str2) 获取字符串字节数函数:length(str) 获取字符串字符数函数:char_length(str) 字母大小写转换函数:大写:upper(x),ucase(x):小写lower(x),lcase(x)

  • php数组添加与删除单元的常用函数实例分析

    本文实例分析了php数组添加与删除单元的常用函数.分享给大家供大家参考.具体分析如下: <?php header("Content-type:text/html;charset=utf-8"); $arr = array("a"=>"Horse","b"=>"Cat","c"=>"Dog"); array_push($arr,"hel

  • PHP数组常用函数实例小结

    本文实例讲述了PHP数组常用函数.分享给大家供大家参考,具体如下: 统计数组元素的个数和唯一性 1.count() 函数的作用是计算数组中的元素数目或对象中属性个数.对于数组,返回其元素的个数,对于其他值返回1. int count(mixed var[,int mode]) 第一个参数是必须的,传人个计算的数组或对象.第二个参数是可选,规定函数的模式是否递归地计算多维数组中数组的元素个数,可能的值是0 或1,0为默认值,不检测多维 数组,为 1则检测多维数组 示例: $a=array("a&q

  • Oracle Instr函数实例讲解

    instr函数为字符查找函数,其功能是查找一个字符串在另一个字符串中首次出现的位置.instr函数在Oracle/PLSQL中是返回要截取的字符串在源字符串中的位置. 字符串的位置是从1开始数instr(str1,str2)计算得出的是后一字符串str2在前一字符串str1中首次出现的位置若没有找到,会返回0 instr()函数的格式: 格式一:instr( string1, string2 ) 含义:instr(源字符串, 目标字符串) 格式二:instr( string1, string2

  • Python处理字符串的常用函数实例总结

    目录 前言 字符串都有哪些操作? 第一类 判断识别字符串 第二类 字符串编辑的操作 第三类:字符串跟字节串的互转 总结 前言 今天我们说了字符串的基础,格式化,这次我们讲解字符串的常用函数,不要错过! 前两篇都在本文同个专栏,欢迎关注.下面开始讲解. 字符串都有哪些操作? 实际开发都有这些需求: 第一大类:判断识别字符串 判断字符串属于那种字面类型(数字,全字母,其他) 判断字符串包含某些结构(数字大写,局部子串,子串出现频次等) 第二类:字符串编辑的操作(生成新字符串) 字符串的替换/合并/填

随机推荐