oracle多重判断语句,Oracle 判断语句

首先是decode函数。

decode的用法是

DECODE(control_value,value1,result1[,value2,result2…][,default_result]);

参数说明:

control _value

试图处理的数值。可以是数据库中表的某一列,DECODE函数将该数值与后面的一系列的偶序相比较,以决定返回值。

value1

是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应

result1

是一组成序偶的结果值。

default_result

未能与任何一个值匹配时,函数返回的默认值。

SELECT decode(sign(to_date('2008-05-01', 'yyyy-MM-dd') - to_date('2008-03-01', 'yyyy-MM-dd')),

1,

to_date('2008-05-02', 'yyyy-MM-dd'),

to_date('2008-03-02', 'yyyy-MM-dd'))

FROM dual

另外一种方法就是CASE WHEN THEN END

本人比较喜欢这种,因为有时候判断的内容比较长,CASE WHEN的结构更加清晰。

select case

when to_date('2008-05-01', 'yyyy-MM-dd') >=

to_date('2008-03-01', 'yyyy-MM-dd') then

to_date('2008-05-01', 'yyyy-MM-dd')

else

to_date('2008-03-01', 'yyyy-MM-dd')

end

from dual

还有一种CASE WHEN用法

CASE sex

WHEN '1' THEN '男'

WHEN '2' THEN '女'

ELSE '其他' END

另外,在WHERE语句里面使用CASE WHEN:

SELECT T2.*, T1.*

FROM T1, T2

WHERE (CASE WHEN T2.COMPARE_TYPE = 'A'

AND T1.SOME_TYPE LIKE 'NOTHING%'

THEN 1

WHEN T2.COMPARE_TYPE != 'A'

AND T1.SOME_TYPE NOT LIKE 'NOTHING%'

THEN 1

ELSE 0 END) = 1

在存储过程中使用的最多的是IF判断语句。

在Oracle中,IF语句分为三种形式:

IF A>B

THEN B=A ;

END IF;

IF A>B

THEN B=A;

ELSE A=B;

END IF;

IF A>B

THEN B=1 ;

ELSIF A=B ;

THEN B= 0;

ELSE

A= 1;

END IF;

要注意的是。

还可以加上begin....end,本情况只适用于if 嵌套情况,如

if .... then

begin

elsif ... then

end if;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值