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

来源:互联网 发布:4万亿救市的后果知乎 编辑:程序博客网 时间:2024/05/02 23:51
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


0 0
原创粉丝点击