sql流程 例子

本文深入探讨了SQL中的流程控制语句(if、ifelse、ifelsifelse)及循环语句(loop、for、while),通过实例解析了如何在SQL中实现选择性和重复性的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*******************
流程控制
*******************/
--if
DECLARE
  v_id INT:=16;
BEGIN
  IF (v_id = 16) THEN
     dbms_output.put_line('花季');
  END IF;
END;


--if else
DECLARE
  v_id INT:=17;
BEGIN
  IF (v_id = 16) THEN
     dbms_output.put_line('花季');
  ELSE
     dbms_output.put_line('雨季');
  END IF;
END;


--if elsif else
DECLARE
  v_id INT:=18;
BEGIN
  IF (v_id = 16) THEN
     NULL;--什么都不做
  ELSIF (v_id = 17) THEN
    dbms_output.put_line('雨季');
  ELSIF (v_id = 18) THEN
    dbms_output.put_line('男孩子');
  ELSE
     dbms_output.put_line('else');
  END IF;
END;






/*******************
循环 
loop: 需要定义结束的条件
for  while
*******************/
DECLARE
      i INT := 0;
BEGIN
    LOOP
      dbms_output.put_line(i);
      i := i+ 1;
      IF(i = 5) THEN
           EXIT; --结束
      END IF;
    END LOOP;
END;




DECLARE
      i INT := 0;
BEGIN
    LOOP
      dbms_output.put_line(i);
      i := i+ 1;
      EXIT WHEN i = 5;
    END LOOP;
END;




--for  循环变量
BEGIN
  FOR v_i IN 1.. 5 
    LOOP
      dbms_output.put_line(v_i);
    END LOOP;
END;


BEGIN
  FOR v_i IN 20.. 25 
    LOOP
      dbms_output.put_line(v_i);
    END LOOP;
END;


--反转循环
BEGIN
  FOR v_i IN REVERSE  20.. 25 
    LOOP
      dbms_output.put_line(v_i);
    END LOOP;
END;




BEGIN
  FOR v_i IN 1.. 5 
    LOOP
      dbms_output.put_line(v_i);
      --自己定义退出循环条件
      EXIT WHEN v_i=3;
    END LOOP;
END;




--while循环
DECLARE
    i INT:= 0;
BEGIN
  WHILE i < 5
    LOOP
      dbms_output.put_line(i);
      i:=i+1;
    END LOOP;
END;






--嵌套循环  标记
DECLARE
    i INT := 0;
    j INT :=0;
BEGIN
   <<OUTER>> LOOP
     dbms_output.put_line('i: ' || i);
     i:=i+1;
     EXIT WHEN i = 5;
     
     j:=0; --j重新归0
     <<INNER>>LOOP
       dbms_output.put_line('j: ' || j);
       j:=j+1;
       EXIT OUTER WHEN j = 3;
     END LOOP;
     
   END LOOP;
END;





















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值