`
seawavenews
  • 浏览: 230089 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

plsql和tsql常用函数比对

阅读更多

数学函数 
  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 

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标准时间
 
 

-----

Oracle支持的字符函数和它们的Microsoft SQL Server等价函数:

函数 Oracle Microsoft SQL Server
把字符转换为ASCII ASCII ASCII
字串连接 CONCAT (expression + expression)
把ASCII转换为字符 CHR CHAR
返回字符串中的开始字符(左起) INSTR CHARINDEX
把字符转换为小写 LOWER LOWER
把字符转换为大写 UPPER UPPER
填充字符串的左边 LPAD N/A
清除开始的空白 LTRIM LTRIM
清除尾部的空白 RTRIM RTRIM
字符串中的起始模式(pattern) INSTR PATINDEX
多次重复字符串 RPAD REPLICATE
字符串的语音表示 SOUNDEX SOUNDEX
重复空格的字串 RPAD SPACE
从数字数据转换为字符数据 TO_CHAR STR
子串 SUBSTR SUBSTRING
替换字符 REPLACE STUFF
将字串中的每个词首字母大写 INITCAP N/A
翻译字符串 TRANSLATE N/A
字符串长度 LENGTH DATELENGTH or LEN
列表中最大的字符串 GREATEST N/A
列表中最小的字符串 LEAST N/A
如果为NULL则转换字串 NVL ISNULL

日期函数

函数 Oracle Microsoft SQL Server
日期相加 (date column +/- value) or
ADD_MONTHS DATEADD
两个日期的差 (date column +/- value) or
MONTHS_BETWEEN DATEDIFF
当前日期和时间 SYSDATE GETDATE()
一个月的最后一天 LAST_DAY N/A
时区转换 NEW_TIME N/A
日期后的第一个周日 NEXT_DAY N/A
代表日期的字符串 TO_CHAR DATENAME
代表日期的整数 TO_NUMBER
(TO_CHAR)) DATEPART
日期舍入 ROUND CONVERT
日期截断 TRUNC CONVERT
字符串转换为日期 TO_DATE CONVERT
如果为NULL则转换日期 NVL ISNULL

转换函数

函数 Oracle Microsoft SQL Server
数字转换为字符 TO_CHAR CONVERT
字符转换为数字 TO_NUMBER CONVERT
日期转换为字符 TO_CHAR CONVERT
字符转换为日期 TO_DATE CONVERT
16进制转换为2进制 HEX_TO_RAW CONVERT
2进制转换为16进制 RAW_TO_HEX CONVERT

其它行级别的函数

函数 Oracle Microsoft SQL Server
返回第一个非空表达式 DECODE COALESCE
当前序列值 CURRVAL N/A
下一个序列值 NEXTVAL N/A
如果exp1 = exp2, 返回null DECODE NULLIF
用户登录账号ID数字 UID SUSER_ID
用户登录名 USER SUSER_NAME
用户数据库ID数字 UID USER_ID
用户数据库名 USER USER_NAME
当前用户 CURRENT_USER CURRENT_USER
用户环境(audit trail) USERENV N/A
在CONNECT BY子句中的级别 LEVEL N/A

合计函数

函数 Oracle Microsoft SQL Server
Average AVG AVG
Count COUNT COUNT
Maximum MAX MAX
Minimum MIN MIN
Standard deviation STDDEV STDEV or STDEVP
Summation SUM SUM
Variance VARIANCE VAR or VARP

Oracle还有一个有用的函数EXTRACT,提取并且返回日期时间或时间间隔表达式中特定的时间域:
EXTRACT(YEAR FROM 日期)

分享到:
评论

相关推荐

    PLSQL与TSQL一些语法区别

    PLSQL和TSQL是两种广泛使用的SQL方言,分别在Oracle和Microsoft SQL Server中使用。它们在语法和功能上有许多相似之处,但也存在显著的区别。以下是对这两种语言在数据类型、变量声明与引用、函数与操作符、语句结构...

    oracle的plsql基础,常用函数

    Oracle的PL/SQL是Oracle...总之,Oracle的PL/SQL是数据库开发中的重要工具,熟练掌握其基础和常用函数能帮助你更高效地管理和操作数据库。通过深入学习并实践这些知识,你将成为一名更加出色的数据库管理员或开发者。

    PLSQL 函数查询-- 初学者

    对于初学者来说,掌握PLSQL的基本函数查询是学习的关键步骤。本篇文章将深入探讨PLSQL中的几个重要函数,以及如何在实际查询中应用它们。 1. **字符串函数**: - `LENGTH(str)`:返回字符串`str`的长度。 - `...

    TSQL与PLSQL比较

    在数据库编程领域,TSQL(Transact-SQL)和PLSQL(Procedural Language/SQL...以上比较展示了TSQL和PLSQL在数学函数和字符串操作上的异同,这些功能在数据库查询和编程中非常常见,帮助开发者进行数值计算和数据处理。

    PLSQL单行函数和组函数详解

    PLSQL中的单行函数和组函数是数据库操作中非常重要的概念,它们在处理数据时起着关键作用。单行函数主要用于处理单行数据,而组函数则用于处理多行数据集。 首先,让我们深入了解一下单行函数。单行函数在SQL和PL/...

    plsql与tsql的语法不同

    PL/SQL(Procedural Language/Structured Query Language)是一种程序设计语言,由Oracle Corporation开发,用于在Oracle数据库中编写存储过程、函数和触发器。T-SQL(Transact-SQL)是一种程序设计语言,由...

    plsql常用函数

    ### PL/SQL 常用函数详解 #### 1. SUBSTR 函数 **功能**:`SUBSTR` 是 PL/SQL 中用于提取字符串的一部分的函数。...这些函数和命令在日常数据库管理工作中非常实用,能够帮助开发者高效地处理数据。

    oracle总结,PLSQL单行函数和组函数详解

    函数分为两类:单行函数和组函数。本篇将详细介绍这两种函数,并以Oracle数据库为例,探讨它们的使用和重要性。 单行函数是作用于单个数据行的函数,它们通常用于SELECT、WHERE、ORDER BY等子句中。例如,`TO_CHAR...

    PLSQL使用大全,涵盖各种语法常用sql函数

    本资料“PLSQL使用大全”深入探讨了PLSQL的各种语法和常用的SQL函数,对于理解和掌握Oracle数据库的开发至关重要。 1. **PLSQL基本结构** - PLSQL由声明部分、执行部分和异常处理部分组成。声明部分包括变量、常量...

    PLSQL 函数大全 值得珍藏

    Oracle PLSQL 函数大全是一份非常详细的 PLSQL 函数大全,涵盖了多种常用的字符串处理函数、数字处理函数、日期处理函数等。下面是对其中一些重要的函数的详细解释: 1. ASCII 函数:返回与指定的字符对应的十进制...

    练习利用PLSQL Developer编写和管理存储过程、存储函数和触发器等

    PLSQL Developer中存储过程、存储函数和触发器的编写和管理 PLSQL Developer是一种功能强大的Oracle数据库开发工具,提供了许多功能来帮助开发者快速编写和管理存储过程、存储函数和触发器等高级数据库对象。本文将...

    ORACLE 常用分析函数

    PLSQL开发笔记和小结;分析函数简述  ROW_NUMBER () OVER([partition_clause] order_by_clause) dense_rank在做排序时如果遇到列有重复值,则重复值所在行的序列值相同,而其后的序列值依旧递增,rank则是重复值...

    经典PLSQL函数

    在PL/SQL中,可以使用多种内置函数和操作来执行数据处理、数据查询和逻辑控制等操作。下面将详细介绍文档中提到的几个经典PL/SQL函数及其用法。 1. IN用法 IN操作符在WHERE子句中用来指定列所匹配的值列表。它可以...

    PLSQL常用语句汇总

    本文将根据提供的标题“PLSQL常用语句汇总”、描述及部分内容,深入探讨PL/SQL中的关键知识点,涵盖表操作、运算符、以及常用的Oracle函数,帮助读者全面理解并熟练应用这些技术。 #### 一、表操作 表是数据库的...

    plsql常用方法

    plsql常用的一些方法:有关表的操作、运算符、常用Oracle函数

    TSQL2PLSQL.rar

    标题"TSQL2PLSQL.rar"所指的是一款工具,它主要用于将SQL Server数据库的对象脚本转换为适应国产数据库系统的语法,比如达梦数据库(DM)和人大金仓数据库(Kingbase)。这款工具对于那些需要从SQL Server迁移到这些...

    PLSQL 操作学习文档

    8. **包的使用**:理解包的概念,它是将相关的过程、函数和变量封装在一起的机制,有助于代码组织和重用。 9. **事务管理**:学习如何在PLSQL中使用COMMIT和ROLLBACK来管理事务,保证数据的一致性和完整性。 10. *...

Global site tag (gtag.js) - Google Analytics