plsql条件表达式

本文详细介绍了PL/SQL中的IF条件语句,包括格式一、二、三,并强调了ELSIF的正确用法。同时,也提到了CASE表达式的使用,用于根据不同的条件执行相应操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 IF条件语句

1.1 IF条件语句格式一

IF<布尔表达式>THEN
    PL/SQL 和 SQL 语句;
END IF;

1.2 IF条件语句格式二

IF<布尔表达式>THEN
    PL/SQL 和 SQL 语句;
ELSE
    其它语句;
END IF;

1.3 IF条件语句格式三

IF<布尔表达式>THEN
    PL/SQL 和 SQL 语句;
ELSLF<其它布尔表达式>THEN
    其它语句;
ELSLF<其它布尔表达式>THEN
    其它语句;
ELSE
    其它语句;
END IF;

提示:ELSIF不能写成ELSELF

例如:

declare
  v_sal employees.salary%type;
begin
  select salary into v_sal
  from employees
  where employee_id = 150;
  if v_sal >= 10000 then
    dbms_output.put_line('salary >= 10000');
  --elsif v_sal >= 5000 and v_sal <10000 then
  elsif v_sal >= 5000 then
    dbms_output.put_line('5000 <= salary <10000');
  else
    dbms_output.put_line('salary <5000');
  end if;
end;
declare
  v_sal employees.salary%type;
  v_temp varchar2(20);
begin
  select salary into v_sal from employees where employee_id = 150;
  
  if v_sal >= 10000 then v_temp := 'salary >= 10000';
  elsif v_sal >= 5000 then v_temp := '5000 <= salary <10000';
  else v_temp := 'salary <5000';
  end if;
  
  dbms_output.put_line(v_temp);
end;

2 CASE表达式

CASE selector
    WHEN expression1 THEN result1
    WHEN expression2 THEN result2

    WHEN expressionN THEN resultN
    [ELSE resultN+1]
END;

例如:

declare
  v_sal employees.salary%type;
  v_temp varchar2(20);
begin
  select salary into v_sal from employees where employee_id = 150;
  
  v_temp := 
         case trunc(v_sal/5000) when 0 then 'salary < 5000'
                                when 1 then '5000 <= salary< 10000'
                                else 'salary >= 10000'
         end;
  
  dbms_output.put_line(v_temp);
end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值