oracle的if语句采用decode函数。
DECODE(value,if1,then1,if2,then2,if3,then3,...,else)
表示如果value 等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。
Oracle数据库是对标准sql语言的过程化扩展,因此产生了pl/sql语言。其中的if语句大量使用使得程序模块化的功能方便实用。现在要讨论的是if语句的基本使用方法。
连接数据库
请输入用户名: scott/123456
设置环境变量
SQL>set serveroutput on
定义两个字符串变量,然后赋值,接着使用if……then语句比较两个字符串变量的长度,并输出比较结果。
declare
a varchar(10)
b varchar(10)
begin
a:='beijing'
b:='guangdong'
if length(a)>length(b)
then dbms_output.put_line('a>b')
end if
end
过if……then……else语句实现只有年龄大于等于56岁,才可以申请退休,否则程序会提示不可以申请退休。
declare
a number(10)
begin
a:=&x
if a>=56
then dbms_output.put_line('可以申请退休')
else dbms_output.put_line('不可以申请退休')
end if
end
制定一个月份数值,然后使用if……then……elsif语句判断它所属的季节,并输出季节信息。
declare
mon number(10)
begin
mon:=&x
if mon=3 or mon=4 or mon=5
then dbms_output.put_line('春节')
elsif mon=6 or mon=7 or mon=8 then dbms_output.put_line('夏季')
elsif mon=9 or mon=10 or mon=11 then dbms_output.put_line('秋季')
elsif mon=12 or mon=1 or mon=2 then dbms_output.put_line('冬季')
end if
end
制定一个季度数值,然后使用case语句判断它所包含的月份信息并输出。
declare
ss number(10)
begin
ss:=&x
case
when ss=1 then dbms_output.put_line('包含月份3,4,5')
when ss=2 then dbms_output.put_line('包含月份6,7,8')
when ss=3 then dbms_output.put_line('包含月份9,10,11')
when ss=4 then dbms_output.put_line('包含月份12,1,2')
end case
end
BEGINIF (1 = 1) THEN
DBMS_OUTPUT.PUT_LINE('这是第一层的if')
IF (1 = 1) THEN
DBMS_OUTPUT.PUT_LINE('这是第二层的if')
END IF
ELSE
DBMS_OUTPUT.PUT_LINE('这是第一层的else')
END IF
END
这个是我测试的 不会被第一个if截断 是不是你脚本有问题?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)