--1.输入两个数字判断两个数字的大小
declare
a number(6,3):=&输入a的值;
b number(6,3):=&输入b的值;
begin
if a>b then dbms_output.put_line('a更大');
elsif b>a then dbms_output.put_line('b更大');
else dbms_output.put_line('都挺大的');
end if;
end;
--2.输入一个数字输出这个数字是偶数还是奇数
declare
n number(4):=&输入一个数字判断奇偶;
begin
if mod(n,2)=0 then dbms_output.put_line('这是偶数');
else dbms_output.put_line('这是奇数');
end if;
end;
--3.判断一个日期是否是星期六或星期日,休息日则开耍,上班日则搬砖
declare
DayTime date:=to_date('&输入一个日期,精确到日','yyyymmdd');
begin
if to_char(DayTime,'day')='星期六'
or to_char(DayTime,'day')='星期日'
then dbms_output.put_line('这天是休息日,开耍!');
else dbms_output.put_line('搬砖');
end if;
end;
/*4.判断一个年份是否是闰年,400整除是世纪闰年,100不整除并且被4整除是闰年,其余
是平年*/
declare
ryear number(5):=&输入一个年份;
begin
if mod(ryear,400)=0 or mod(ryear,100)!=0 and mod(ryear,4)=0
then dbms_output.put_line('这个年份是闰年');
else dbms_output.put_line('这个年份是平年');
end if;
end;
/*5.请输入一个员工编号,如果是10号部门则员工上调工资10%,如果是20号部门则工资
上调20%,如果是30号部门则工资上调30%*/
declare
sempno emp.empno%type:=&请输入一个员工编号,根据其部门号涨薪;
dempno emp.deptno%type;
begin
select distinct deptno into dempno from emp
where empno=sempno;
if dempno=10
then update emp set sal=sal*1.1
where empno=sempno;
elsif dempno=20
then update emp set sal=sal*1.2
where empno=sempno;
elsif dempno=30
then update emp set sal=sal*1.3
where empno=sempno;
else dbms_output.put_line('该员工不存在或没有涨薪资格!');
end if;
end;
--6.输入三个数,不考虑相等,有小到大打印输出
create table AbcNumber(
sNumber number(6,3));--建一个表
declare
a AbcNumber.sNumber%type:=&输入数值a;
b AbcNumber.sNumber%type:=&输入数值b;
c AbcNumber.sNumber%type:=&输入数值c;
roww number(20);--装载排名最小值
maxroww number(20);--装载排名最大值
ABC AbcNumber.sNumber%type;--将数据逐个装入并输出用的参数
begin
insert into AbcNumber values(a);
insert into AbcNumber values(b);--将数据插入表中一列
insert into AbcNumber values(c);
select r into roww from(
select row_number()over(order by sNumber asc) r from AbcNumber
) where r=1;--装载排名最小值
select max(r) into maxroww from(
select row_number()over(order by sNumber asc) r from AbcNumber
);--装载排名最大值
for i in roww .. maxroww--将数据逐个装入并输出
loop
select sNumber into ABC from(
select sNumber,row_number()over(order by sNumber asc) r from AbcNumber )
where r=i;
dbms_output.put_line(ABC);
end loop;
end;
选择结构语句判定示意图: