使用case...when語句進行判斷,其語法格式如下:
case<selector>
when<expression_1> then pl_sqlsentence_1;
when<expression_2> then pl_sqlsentence_2;
...
when<expression_n> then pl_sqlsentence_n;
[else plsql_sentence;]
end case;
具體例子如下:
declare v_season int:=3; autoinfo varchar2(50); begin case v_season when 1 then autoinfo :=v_season||'季節包括1,2,3月份'; when 2 then autoinfo :=v_season||'季節包括4,5,6月份'; when 3 then autoinfo :=v_season||'季節包括7,8,9月份'; when 4 then autoinfo :=v_season||'季節包括10,11,12月份'; else autoinfo :=v_season||'季節不合法'; end case; dbms_output.put_line(autoinfo); end;
輸出結果:
3季節包括7,8,9月份
在使用case...when 時候,只需要寫一個case就ok,不可以寫多個,錯誤寫法如下:
declare v_season int:=3; autoinfo varchar2(50); begin case v_season when 1 then autoinfo :=v_season||'季節包括1,2,3月份'; case v_season when 2 then autoinfo :=v_season||'季節包括4,5,6月份'; case v_season when 3 then autoinfo :=v_season||'季節包括7,8,9月份'; case v_season when 4 then autoinfo :=v_season||'季節包括10,11,12月份'; else autoinfo :=v_season||'季節不合法'; end case; dbms_output.put_line(autoinfo); end;
如果這樣寫的話,語法是錯誤的,在運行pl/sql塊時候會出現錯誤。