SqlServer与Oracle函数对比

一、内置函数对比

函数用途

SqlServer

Oracle

备注

字符串长度LEN('AA')LENGTH('AA')
判断列是否为空,不为空返回列值,为空返回表达式值ISNULL(COL1,EXP)NVL(COL1,EXP)
返回subStr在Str中的位置CHARINDEX(subStr,str)INSTR(str,subStr)注意:两个数据库的函数参数相反
判断表达式1和表达式2是否相等,相等返回NULL,否则返回表达式1的值NULLIF(EXP1, EXP2)NULLIF(EXP1, EXP2)
替换目标字符串t1中s1为r1REPLACE(T1,S1, R1)REPLACE(T1,S1, R1)
截取字符串S1,从index开始借钱length长度SUBSTRING(s1,index,length)SUBSTR(s1,index,length)
根据条件匹配返回结果case field when con1 then val1 when con2 then val2 else val3 enddecode(field,con1,val1,con2,val2,val3)
日期time格式化

SELECT CONVERT(varchar, time, 111) ;

SELECT CONVERT(VARCHAR, time, 23);

SELECT CONVERT(VARCHAR, time, 20)

to_char(time,'yyyy/MM/dd');

to_char(time,'yyyy-MM-dd');

to_char(time,'yyyy-MM-dd HH:mm:ss');

两个日期差值DATEDIFF( Hour, beginTime, endTime)to_number(endTime - beginTime) * 24

二、自定义函数

Oracle自定义函数:

CREATE FUNCTION FUN1  -- 函数名
( 
   PARAM1 varchar2  -- 输入参数
)
RETURN varchar2 IS Result varchar2(200) -- 输出参数
   BEGIN
      SELECT  @PARAM1 FROM DUAL;
      RETURN (RESULT) -- 输出结果
   END

SqlServer自定义函数:

CREATE FUNCTION dbo.FUN1  -- 函数名
( 
   @PARAM1 varchar(max)  -- 输入参数
)
RETURNS varchar(max) -- 输出参数
AS 
   BEGIN

      DECLARE
         @RESULT varchar(200)

      SET @Result = @PARAM1

      RETURN @RESULT -- 输出结果

   END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值