if/else
運費計算,同乙個省份則只收取基價。 根據是不是同乙個省返回距離,同乙個省份則返回零。
declare
mycityname varchar2(20) := '長沙市';
tocityname varchar2(20) := '唐山市';
dis number;
cnt number;
begin
select count(*)
into cnt
from s_city
where cityname = tocityname
and provinceid =
(select provinceid from s_city where cityname = mycityname);
if (cnt > 0) then
-- select 0 from dual;
select 0 into dis from dual;
else
-- dbms_output.put_line(select getdisbycityname from dual);
select getdisbycityname(mycityname, tocityname) into dis from dual;
end if;
dbms_output.put_line(dis);
end;
迴圈
計算運費的規格:通過設定一組路程的分割線,來分段計價。
比如可以把一萬公里分成 10段,沒一段收取特定的**。要提**格的話,可以分更多的段數。
create table send_scope
(send_scopeid number,
val number
);建立乙個序列
create sequence seq_send_scope
increment by 1
start with 1
nomaxvalue
nocycle cache 10; --cache 10 個在記憶體中。
200公里為一段,分14段。
begin
declare
num number := 200;
begin
for n in 1 .. 15 loop
select num + 200 into num from dual;
insert into send_scope values (seq_send_scope.nextval, num);
end loop;
end;
end;
select * from send_scope;
---另外兩個迴圈的示例
declare
num number := 0;
begin
<>
loop
dbms_output.put_line(num);
exit myloop when( num > 10);
num := num + 1;
end loop;
end;
declare
num number := 10;
begin
while(num>0)loop
num:= num-1;
dbms_output.put_line(num);
end loop;
end;
ORACLE 流程控制語句
一 選擇語句 1 if.then 語句 示例 if temp1.order type normal asn then insert into baan.twhinh905201 erp t sorn,t spon,t orno,t pono,t qrcr,t cwar,t item,t stat,t...
一 Oracle流程控制
6.1 loop loop end loop 6.2 exit語句必須放在迴圈內,return語句可以在正常到達程式結尾之前而終止執行loop if.then exit end exit end loop 6.3exit whenloop fetch c1 就是把游標的值取出來,放到指定變數中 in...
mysql流程控制 MySQL 流程控制
流程控制 1 順序結構 程式從上往下依次執行 2 分支結構 多條路徑選擇一條 3 迴圈結構 在規定範圍內重複執行 一 分支結構 1 if函式 功能 實現分支流 語法 if 表示式1,表示式2,表示式3 執行順序 執行表示式1,成立返回表示式2的值,不成立則返回表示式3的值 應用 任何地方 例 if ...