SQLServer和Oracle常用函数对比

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:
None.gif procedure Pro_SubPro
None.gif (
None.gif dw_in in varchar2,
None.gif cur out pkg_general.ROW_CURSOR
None.gif )
None.gif as
None.gif begin
None.gif open cur for
None.gif select yqmc from fle80 where dwbm =dw_in;
None.gif end Pro_SubPro;
None.gif
None.gif procedure Pro_MainPro(
None.gif dw_in in varchar2
None.gif )
None.gif as
None.gif mc NVARCHAR2( 20);
None.gif cur pkg_general.ROW_CURSOR;
None.gif begin
None.gif Pro_SubPro(dw_in,cur);
None.gif fetch cur into mc;
None.gif loop
None.gif exit when cur %notfound;
None.gif dbms_output.put_line(mc);
None.gif fetch cur into mc;
None.gif end loop;
None.gif end Pro_MainPro;
数学函数
None.gif 在oracle 中distinct关键字可以显示相同记录只显示一条
None.gif   1.绝对值
None.gif  S: select abs( - 1) value
None.gif  O: select abs( - 1) value from dual
None.gif
None.gif   2.取整(大)
None.gif  S: select ceiling( - 1.001) value
None.gif  O: select ceil( - 1.001) value from dual
None.gif
None.gif   3.取整(小)
None.gif  S: select floor( - 1.001) value
None.gif  O: select floor( - 1.001) value from dual
None.gif
None.gif   4.取整(截取)
None.gif  S: select cast( - 1.002 as int) value
None.gif  O: select trunc( - 1.002) value from dual
None.gif
None.gif   5.四舍五入
None.gif  S: select round( 1.23456, 4) value 1.23460
None.gif  O: select round( 1.23456, 4) value from dual 1.2346
None.gif
None.gif   6.e为底的幂
None.gif  S: select Exp( 1) value 2.7182818284590451
None.gif  O: select Exp( 1) value from dual 2.71828182
None.gif
None.gif   7.取e为底的对数
None.gif  S: select log( 2.7182818284590451) value 1
None.gif  O: select ln( 2.7182818284590451) value from dual; 1
None.gif
None.gif   8.取10为底对数
None.gif  S: select log10( 10) value 1
None.gif  O: select log( 10, 10) value from dual; 1
None.gif
None.gif   9.取平方
None.gif  S: select SQUARE( 4) value 16
None.gif  O: select power( 4, 2) value from dual 16
None.gif
None.gif   10.取平方根
None.gif  S: select SQRT( 4) value 2
None.gif  O: select SQRT( 4) value from dual 2
None.gif
None.gif   11.求任意数为底的幂
None.gif  S: select power( 3, 4) value 81
None.gif  O: select power( 3, 4) value from dual 81
None.gif
None.gif   12.取随机数
None.gif  S: select rand() value
None.gif  O: select sys.dbms_random.value( 0, 1) value from dual;
None.gif
None.gif   13.取符号
None.gif  S: select sign( - 8) value - 1
None.gif  O: select sign( - 8) value from dual - 1
None.gif
None.gif   14.圆周率
None.gif  S: SELECT PI() value 3.1415926535897931
None.gif  O:不知道
None.gif
None.gif   15. sin, cos, tan 参数都以弧度为单位
None.gif  例如: select sin( PI() / 2) value 得到1(SQLServer)
None.gif
None.gif   16. Asin, Acos, Atan,Atan2 返回弧度
None.gif
None.gif   17.弧度角度互换(SQLServer,Oracle不知道)
None.gif   DEGREES:弧度 -〉角度
None.gif   RADIANS:角度 -〉弧度
None.gif
None.gif数值间比较
None.gif
None.gif   18. 求集合最大值
None.gif  S: select max(value) value from
None.gif  ( select 1 value
None.gif   union
None.gif   select - 2 value
None.gif   union
None.gif   select 4 value
None.gif   union
None.gif   select 3 value)a
None.gif
None.gif  O: select greatest( 1, - 2, 4, 3) value from dual
None.gif
None.gif   19. 求集合最小值
None.gif  S: select min(value) value from
None.gif  ( select 1 value
None.gif   union
None.gif   select - 2 value
None.gif   union
None.gif   select 4 value
None.gif   union
None.gif   select 3 value)a
None.gif
None.gif  O: select least( 1, - 2, 4, 3) value from dual
None.gif
None.gif   20.如何处理null值(F2中的null以10代替)
None.gif  S: select F1, IsNull(F2, 10) value from Tbl
None.gif  O: select F1,nvl(F2, 10) value from Tbl
None.gif
None.gif   21.求字符序号
None.gif  S: select ascii( ' a ') value
None.gif  O: select ascii( ' a ') value from dual
None.gif
None.gif   22.从序号求字符
None.gif  S: select char( 97) value
None.gif  O: select chr( 97) value from dual
None.gif
None.gif   23.连接
None.gif  S: select ' 11 ' + ' 22 ' + ' 33 ' value
None.gif  O: select CONCAT( ' 11 ', ' 22 ')   33 value from dual
None.gif
None.gif 23.子串位置 -- 返回3
None.gif
  S: select CHARINDEX( ' s ', ' sdsq ', 2) value
None.gif  O: select INSTR( ' sdsq ', ' s ', 2) value from dual
None.gif
None.gif   23.模糊子串的位置 -- 返回2,参数去掉中间%则返回7
None.gif
  S: select patindex( ' %d%q% ', ' sdsfasdqe ') value
None.gif  O:oracle没发现,但是instr可以通过第四个参数控制出现次数
None.gif   select INSTR( ' sdsfasdqe ', ' sd ', 1, 2) value from dual 返回6
None.gif
None.gif   24.求子串
None.gif  S: select substring( ' abcd ', 2, 2) value
None.gif  O: select substr( ' abcd ', 2, 2) value from dual
None.gif
None.gif   25.子串代替 返回aijklmnef
None.gif  S: SELECT STUFF( ' abcdef ', 2, 3, ' ijklmn ') value
None.gif  O: SELECT Replace( ' abcdef ', ' bcd ', ' ijklmn ') value from dual
None.gif
None.gif   26.子串全部替换
None.gif  S:没发现
None.gif  O: select Translate( ' fasdbfasegas ', ' fa ', ' ' ) value from dual
None.gif
None.gif   27.长度
None.gif  S: len, datalength
None.gif  O:length
None.gif   28.大小写转换 lower, upper
None.gif
None.gif   29.单词首字母大写
None.gif  S:没发现
None.gif  O: select INITCAP( ' abcd dsaf df ') value from dual
None.gif
None.gif   30.左补空格(LPAD的第一个参数为空格则同space函数)
None.gif  S: select space( 10) + ' abcd ' value
None.gif  O: select LPAD( ' abcd ', 14) value from dual
None.gif
None.gif   31.右补空格(RPAD的第一个参数为空格则同space函数)
None.gif  S: select ' abcd ' + space( 10) value
None.gif  O: select RPAD( ' abcd ', 14) value from dual
None.gif
None.gif   32.删除空格
None.gif  S: ltrim, rtrim
None.gif  O: ltrim, rtrim,trim
None.gif
None.gif   33. 重复字符串
None.gif  S: select REPLICATE( ' abcd ', 2) value
None.gif  O:没发现
None.gif
None.gif   34.发音相似性比较(这两个单词返回值一样,发音相同)
None.gif  S: SELECT SOUNDEX ( ' Smith '), SOUNDEX ( ' Smythe ')
None.gif  O: SELECT SOUNDEX ( ' Smith '), SOUNDEX ( ' Smythe ') from dual
None.gif  SQLServer中用SELECT DIFFERENCE( ' Smithers ', ' Smythers ') 比较soundex的差
None.gif  返回0 - 4,4为同音,1最高
None.gif
None.gif日期函数
None.gif   35.系统时间
None.gif  S: select getdate() value
None.gif  O: select sysdate value from dual
None.gif
None.gif   36.前后几日
None.gif  直接与整数相加减
None.gif
None.gif   37.求日期
None.gif  S: select convert( char( 10), getdate(), 20) value
None.gif  O: select trunc(sysdate) value from dual
None.gif   select to_char(sysdate, ' yyyy-mm-dd ') value from dual
None.gif
None.gif   38.求时间
None.gif  S: select convert( char( 8), getdate(), 108) value
None.gif  O: select to_char(sysdate, ' hh24:mm:ss ') value from dual
None.gif
None.gif 39.取日期时间的其他部分
None.gif  S: DATEPARTDATENAME 函数 (第一个参数决定)
None.gif  O:to_char函数 第二个参数决定
None.gif
None.gif  参数 -- -------------------------------下表需要补充
None.gif
   year yy, yyyy
None.gif  quarter qq, q (季度)
None.gif   month mm, m (m O无效)
None.gif  dayofyear dy, y (O表星期)
None.gif   day dd, d (d O无效)
None.gif  week wk, ww (wk O无效)
None.gif  weekday dw (O不清楚)
None.gif  Hour hh,hh12,hh24 (hh12,hh24 S无效)
None.gif  minute mi, n (n O无效)
None.gif  second ss, s (s O无效)
None.gif  millisecond ms (O无效)
None.gif   -- --------------------------------------------
None.gif

None.gif   40.当月最后一天
None.gif  S:不知道
None.gif  O: select LAST_DAY(sysdate) value from dual
None.gif
None.gif   41.本星期的某一天(比如星期日)
None.gif  S:不知道
None.gif  O: SELECT Next_day(sysdate, 7) vaule FROM DUAL;
None.gif
None.gif   42.字符串转时间
None.gif  S:可以直接转或者select cast( ' 2004-09-08 ' as datetime) value
None.gif  O: SELECT To_date( ' 2004-01-05 22:09:38 ', ' yyyy-mm-dd hh24-mi-ss ') vaule FROM DUAL;
None.gif
None.gif   43.求两日期某一部分的差(比如秒)
None.gif  S: select datediff(ss, getdate(), getdate() + 12.3) value
None.gif  O:直接用两个日期相减(比如d1 -d2 = 12.3
None.gif   SELECT (d1 -d2) * 24 * 60 * 60 vaule FROM DUAL;
None.gif
None.gif   44.根据差值求新的日期(比如分钟)
None.gif  S: select dateadd(mi, 8, getdate()) value
None.gif  O: SELECT sysdate + 8 / 60 / 24 vaule FROM DUAL;
None.gif
None.gif   45.求不同时区时间
None.gif  S:不知道
None.gif  O: SELECT New_time(sysdate, ' ydt ', ' gmt ' ) vaule FROM DUAL;
None.gif
None.gif   -- ---时区参数,北京在东8区应该是Ydt-------
None.gif
  AST ADT 大西洋标准时间
None.gif  BST BDT 白令海标准时间
None.gif  CST CDT 中部标准时间
None.gif  EST EDT 东部标准时间
None.gif  GMT 格林尼治标准时间
None.gif  HST HDT 阿拉斯加?夏威夷标准时间
None.gif  MST MDT 山区标准时间
None.gif  NST 纽芬兰标准时间
None.gif  PST PDT 太平洋标准时间
None.gif  YST YDT YUKON标准时间
None.gif



本文转自高海东博客园博客,原文链接:http://www.cnblogs.com/ghd258/archive/2006/03/15/350804.html,如需转载请自行联系原作者
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
5月前
|
SQL Oracle 关系型数据库
Oracle之日期计算相关函数
Oracle之日期计算相关函数
46 0
|
5月前
|
SQL Oracle 关系型数据库
Oracle之regexp系列函数详解
Oracle之regexp系列函数详解
157 1
|
8月前
|
存储 SQL Oracle
Oracle数据库批量删除表、视图、序列、存储过程、函数脚本
Oracle数据库批量删除表、视图、序列、存储过程、函数脚本
68 0
|
4月前
|
存储 Java 数据库
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数(二)
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数
38 0
|
4月前
|
SQL Oracle 关系型数据库
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
68 0
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
|
16天前
|
Oracle 算法 关系型数据库
Oracle常用系统函数之数字类函数:数字的魔术师
【4月更文挑战第19天】Oracle数据库中的数字类函数是数字处理的魔术师,包括`ROUND`(四舍五入),`CEIL`和`FLOOR`(向上/下取整),以及`ABS`(计算绝对值)。还有`MOD`、`TRUNC`和`POWER`等函数,提供求余数、截断和计算幂的功能。熟练运用这些函数能提升数据管理效率,让处理数字变得更简单、有趣。
|
2月前
|
SQL 存储 Python
Microsoft SQL Server 编写汉字转拼音函数
Microsoft SQL Server 编写汉字转拼音函数
|
2月前
|
SQL 存储 Oracle
Oracle系列之九:Oracle常用函数
Oracle系列之九:Oracle常用函数
|
3月前
|
SQL 存储
SQL Server基本函数
SQL Server基本函数
|
3月前
|
SQL Oracle 关系型数据库
Oracle查询优化-聚集函数
【2月更文挑战第5天】【2月更文挑战第13篇】聚集函数
20 4

相关实验场景

更多

推荐镜像

更多