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;