oracle自建账号密码oracle中if/else功能的实现的3种写法介绍

1、标准sql规范

一、单个IF1、if a=...  then.........end if;2、if a=... then......else....end if;二、多个IFif a=..  then......elsif a=..  then....end if;     这里中间是“ELSIF&oracle账号rdquo;,而不是ELSE IF 。这里需要特别注意

2、decode函数

DECODE的语法:

DECODE(value,if1,then1,if2,then2,if3,then3,...,else)

表示如果value等于if1时,DECODE函数的结果返回then1,…,如果不等于任何一个if值,则返回else。

3、case when

case when a='1'then 'xxxx'     when a='2' then 'ssss'else  'zzzzz'end as

注意点:

1、以CASE开头,以END结尾
2、分支中WHEN 后跟条件,THEN为显示结果
3、ELSE 为除此之外的默认情况,类似于高级语言程序中switch case的default,可以不加
4、END 后跟别名


这是一个使用IF-THEN-ELSE语句的函数的例子:

CREATE OR replace FUNCTION Incomelevel (name_in IN VARCHAR2) RETURN VARCHAR2 IS   monthly_value NUMBER(6);   ilevel        VARCHAR2(20);   CURSOR c1 IS     SELECT monthly_income     FROM   employees     WHERE  name = name_in; BEGIN     OPEN c1;     FETCH c1 INTO monthly_value;     CLOSE c1;     IF monthly_value <= 4000 THEN       ilevel := 'Low Income';     ELSIF monthly_value > 4000           AND monthly_value <= 7000 THEN --逻辑与       ilevel := 'Avg Income';     ELSIF monthly_value > 7000           AND monthly_value <= 15000 THEN       ilevel := 'Moderate Income';     ELSE       ilevel := 'High Income';     END IF;     RETURN ilevel; END; 
此条目发表在oracle metalink账号分类目录,贴了标签。将固定链接加入收藏夹。