學習筆記 13編寫控制結構

2021-08-30 09:39:28 字數 3853 閱讀 8162

13-1:簡單的條件判斷

declare

v_sal number(6,2);

begin

select sal into v_sal from emp

where lower(ename)=lower('&&name');

if v_sal<2000 then

update emp set sal=v_sal+200

where lower(ename)=lower('&name');

end if;

end;

/13-2:二重條件分支

declare

v_comm number(6,2);

begin

select comm into v_comm from emp

where empno=&&no;

if v_comm<>0 then

update emp set comm=v_comm+100

where empno=&no;

else

update emp set comm=200

where empno=&no;

end if;

end;

/13-3:多重條件分支

declare

v_job varchar2(10);

v_sal number(6,2);

begin

select job,sal into v_job,v_sal

from emp where empno=&&no;

if v_job='president' then

update emp set sal=v_sal+1000 where empno=&no;

elsif v_job='manager' then

update emp set sal=v_sal+500 where empno=&no;

else

update emp set sal=v_sal+200 where empno=&no;

end if;

end;

/13-4:在case語句中使用單一選擇符進行等值比較

declare

v_deptno emp.deptno%type;

begin

v_deptno:=&no;

case v_deptno

when 10 then

update emp set comm=100 where deptno=v_deptno;

when 20 then

update emp set comm=80 where deptno=v_deptno;

when 30 then

update emp set comm=50 where deptno=v_deptno;

else

dbms_output.put_line('不存在該部門');

end case;

end;

/13-5:在case語句中使用多種條件比較

declare

v_sal emp.sal%type;

v_ename emp.ename%type;

begin

select ename,sal into v_ename,v_sal

from emp where empno=&no;

case

when v_sal<1000 then

update emp set comm=100 where ename=v_ename;

when v_sal<2000 then

update emp set comm=80 where ename=v_ename;

when v_sal<6000 then

update emp set comm=50 where ename=v_ename;

end case;

end;

/13-6:基本迴圈

create table temp(cola int);

declare

i int:=1;

begin

loop

insert into temp values(i);

exit when i=10;

i:=i+1;

end loop;

end;

/13-7:while迴圈

declare

i int :=1;

begin

while i<=10 loop

insert into temp values(i);

i:=i+1;

end loop;

end;

/13-8:for迴圈

begin

for i in reverse 1..10 loop

insert into temp values(i);

end loop;

end;

/13-9:巢狀迴圈和標號

declare

result int;

begin

<>

for i in 1..100 loop

<>

for j in 1..100 loop

result:=i*j;

exit outer when result=1000;

exit when result=500;

end loop inner;

dbms_output.put_line(result);

end loop outer;

dbms_output.put_line(result);

end;

/13-10:exit和exit when語句

declare

i int:=1;

begin

loop

dbms_output.put_line(i);

exit when i=5;

i:=i+1;

end loop;

end;

/13-11:countinue和continue when語句

declare

i int:=0;

begin

loop

i:=i+1;

continue when i=3;

dbms_output.put_line(i);

exit when i=5;

end loop;

end;

/13-12:goto

declare

i int:=1;

begin

loop

insert into temp values(i);

if i=10 then

goto end_loop;

end if;

i:=i+1;

end loop;

<>

dbms_output.put_line('迴圈結束');

end;

/13-13:null

declare

v_sal emp.sal%type;

v_ename emp.ename%type;

begin

select ename,sal into v_ename,v_sal

from emp where empno=&no;

if v_sal<3000 then

update emp set comm=sal*0.1 where ename=v_ename;

else

null;

end if;

end;

/

C Primer學習筆記 13 拷貝控制

題記 本系列學習筆記 c primer學習筆記 主要目的是討論一些容易被大家忽略或者容易形成錯誤認識的內容。只適合於有了一定的c 基礎的讀者 至少學完一本c 教程 如果文中有錯誤或遺漏之處,敬請指出,謝謝!c 類中有四個不可或缺的部分,那就是建構函式 拷貝建構函式 賦值操作符和析構函式。如果類中沒有...

halcon學習筆記 (13)運算元 控制

assign input result 指定乙個新值給控制變數 comment comment 為程式新增一行注釋 exit 終止hdevelop global declaration 申明乙個全域性變數 insert input,value,index result 分配乙個值到乙個元組元素 re...

halcon學習筆記 (13)運算元 控制

assign input result 指定乙個新值給控制變數 comment comment 為程式新增一行注釋 exit 終止hdevelop global declaration 申明乙個全域性變數 insert input,value,index result 分配乙個值到乙個元組元素 re...