oracle中if/else功能的实现的3种写法介绍
程序员文章站
2023-03-27 22:47:11
1、标准sql规范
一、单个IF
1、
if a=... then
.........
end if;
2、
if a=... then
.......
1、标准sql规范
一、单个IF 1、 if a=... then ......... end if; 2、 if a=... then ...... else .... end if; 二、多个IF if a=.. then ...... elsif a=.. then .... end if; 这里中间是“ELSIF”,而不是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;
上一篇: Oracle11g删除归档日志
下一篇: oracle环境变量配置
推荐阅读