您的位置:首页 > 数据库 > Oracle

oracle decode函数,取两个日期中的较大值

2015-11-21 15:04 537 查看
decode(条件, 值1, 翻译值1, 值2, 翻译值2, ...值n, 翻译值n, 缺省值)

【功能】根据条件返回相应值【参数】c1, c2, ..., cn, 字符型 / 数值型 / 日期型,必须类型相同或null

注:值1……n 不能为条件表达式, 这种情况只能用case when then end解决·

含义解释:decode(条件, 值1, 翻译值1, 值2, 翻译值2, ...值n, 翻译值n, 缺省值)    

该函数的含义如下:    

IF 条件 = 值1 THEN  RETURN(翻译值1)  

ELSIF 条件 = 值2 THEN  RETURN(翻译值2)  ......  

ELSIF 条件 = 值n THEN  RETURN(翻译值n)    ELSE  RETURN(缺省值)  END IF  

或:  

when case 条件 = 值1 THEN  RETURN(翻译值1)  

ElseCase 条件 = 值2 THEN  RETURN(翻译值2)  ......  

ElseCase 条件 = 值n THEN  RETURN(翻译值n)    

ELSE  RETURN(缺省值)  END

sign(x)【功能】返回x的正负值【参数】x,数字型表达式【返回】数字,若为正值返回1,负值返回-1,0返回0

取两个日期中的较大值:

SELECT Decode(Sign(tb.KCCZRQ-SYSDATE),-1,SYSDATE,tb.KCCZRQ)  AS XFTS FROM tb
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: