Oracle儲存過程乾貨(二):PLSQL控制語句

a960549548發表於2024-03-06

注:本文的資料都來源於,oracle自帶的emp表。


---if then els if end if, 單條件判斷 ---

declare
  v_grade char(1);
begin
  v_grade := 'B';
  if v_grade = 'A' then
    dbms_output.put_line('哥真牛逼');
  else
    dbms_output.put_line('哥還得加油');
  end if;
end;
/

---if then elsif then else end if, 多條件判斷 ---

declare
  v_grade char(1);
begin
  v_grade := 'X';
  if v_grade = 'A' then
    dbms_output.put_line('哥是優等生');
  elsif v_grade = 'B' then
    dbms_output.put_line('哥成績一般');
  elsif v_grade = 'C' then
    dbms_output.put_line('哥是拖後腿');
  else
    dbms_output.put_line('哥不能用成績衡量');
  end if;
end;
/

---case when end case 判斷 ---

declare
  v_grade char(1);
begin
  v_grade := 'A';
  case
    when v_grade = 'A' then
      dbms_output.put_line('哥是優等生');
    when v_grade = 'B' then
      dbms_output.put_line('哥成績一般');
    when v_grade = 'C' then
      dbms_output.put_line('哥是吊車尾');
    else
      dbms_output.put_line('哥不能用成績衡量');
  end case;
end;



留了思考題,大家可以先嚐試自己做,再看答案。


問題:請大家分別用if和case when的方法返回如下對應資訊

工資在700-1200,返回:工資真tm低,要不要人活了!

工資在1200-1500,返回:工資好低

工資在1500-3000,返回:剛好能活下去

工資高於3000,返回:哥真牛逼

- - - - - - -

答案

1、---用if then elsif判斷員工編號的生存情況---

declare
  v_sal number;
begin
  select sal into v_sal from emp where empno = 7839;
  if v_sal >= 700 and v_sal<1200 then
    dbms_output.put_line('工資真tm低,要不要人活了!');
  elsif v_sal >= 1200 and v_sal<1500 then
    dbms_output.put_line('工資好低');
  elsif v_sal >= 1500 and v_sal<3000 then
    dbms_output.put_line('剛好能活下去');
  elsif v_sal > 3000 then
    dbms_output.put_line('哥很牛逼!');
  end if;
end;
/


2、---用case when判斷員工編號的生存情況---

declare
  v_sal number;
begin
  select sal into v_sal from emp where empno = 7839;
  case
    when v_sal >= 700 and v_sal < 1200 then
      dbms_output.put_line('工資真tm低,沒法活了');
    when v_sal >= 1200 and v_sal < 1500 then
      dbms_output.put_line('工資好低');
    when v_sal >= 1500 and v_sal < 3000 then
      dbms_output.put_line('剛好夠活');
    when v_sal > 3000 then
      dbms_output.put_line('哥真牛逼');
  end case;
end;
/



來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70013625/viewspace-3008219/,如需轉載,請註明出處,否則將追究法律責任。

相關文章