第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 流程控制语句【循环 条件】

流程控制语句【循环 条件】

时间:2023-04-25 23:00:39

相关推荐

流程控制语句【循环 条件】

--简单循环

declare--声明mynum number(3) := 0; beginloopmynum := mynum + 1;dbms_output.put_line(mynum);exit when mynum = 200; --退出循环条件end loop;end;

--while循环

declarei number := 1;beginwhile i <= 100 loop --执行循环条件 dbms_output.put_line(i);i := i + 1;end loop;end;

--for循环

beginfor i in 1 .. 10 loopdbms_output.put_line(i);end loop;end;

--goto循环

declarei number := 1;beginloop dbms_output.put_line('i:'||i);i := i + 1;if i > 100 thengoto biaoji;end if;end loop;<<biaoji>>dbms_output.put_line('i:'||i);end;

--if条件语句

declarev_value1 number := 20;beginif v_value1 < 10 thendbms_output.put_line('v_value1小于10');elsif v_value1 < 20 then --注意elsif 不是 else ifdbms_output.put_line('v_value1小于20');elsedbms_output.put_line('v_value1大于或等于20');end if;end;

--case when

declarev_value1 varchar2(2) := 'A';v_value2 varchar2(100);beginv_value2 := case v_value1when 'A' then'优秀'when 'B' then'一般'else'差劲'end;dbms_output.put_line(v_value2);end;

declarev_value1 varchar2(2) := 'A';v_value2 varchar2(100);beginv_value2 := casewhen v_value1 = 'A' then'优秀'when v_value1 = 'B' then'一般'else'差劲'end;dbms_output.put_line(v_value2);end;

以上两种方式都是可以的,这里注意了,case when语句 始终都都返回值(这点和if条件语句不一样)。

也可以用于查询结果和查询条件

select case t.c_typewhen 'B' then'一般'when 'A' then'优秀'else'差劲'end,casewhen t.c_case_no = '4090003002115000012' then'409000300000012'endfrom tbl_claim twhere t.c_case_no = casewhen t.c_case_no = '409000300000012' then'409000300000012'end;

--decode

decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)

select decode('A', 'B', '一般', 'A', '优秀', '差劲') from dual;

可用于查询结果和查询条件。(但是不能像case when一样赋值)

select decode(t.type, 'B', '一般', '差劲')from mytable twhere t.c_no = decode(t.c_no, '111', '111', '222');

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。