求助...... 1-100的存储过程求和方法有哪些?  越多越好...
在PL/SQL上能实现的       
 最简便的应该是while 循环 ,把1-100可以取出来,再进行求和吧...我写了几次,都错了, 麻烦知道的朋友详细写出SQL,
还有不同方法的也多多交流啊。
   

解决方案 »

  1.   

    select sum(level) sl from dual connect by level<=100有什么用吗?
      

  2.   

    写一个函数,然后调用就行了
    Create Or Replace Function Number_Sum(Num Number) Return Number As
    c_Return Number;
    Begin
    c_Return := 0;
    For c_Tmp In 1 .. Num Loop
    c_Return := c_Return + c_Tmp;
    End Loop;
    Return c_Return;
    End Number_Sum;Select Number_Sum(100) From dual;
      

  3.   

    start with ...connect by 是树状查询
      

  4.   


    你能写出while循环的SQL不 。  declare
     vi_n number:=1;
    begin
    while vi_n <=100;
    loop
    dbms_output.put_line(vi_n);
    vi_n:=vi_n+1;
    end loop;
    end;求大侠写完啊 。存储求和
      

  5.   

    Create Or Replace Function Number_Sum(Num Number) Return Number As
    c_Return Number;
    c_Tmp    Number;
    Begin
    c_Return := 0;
    c_Tmp    := 0;
    While c_Tmp <= Num Loop
    c_Return := c_Return + c_Tmp;
    c_Tmp    := c_Tmp + 1;
    End Loop;
    Return c_Return;
    End Number_Sum;
      

  6.   

    create or replace procedure p_sum(ma in number) is
    vi_sum number(6) := 0;
    vi_n   number(4) := 1;begin while vi_n <= ma
    loop
    vi_n   := vi_n + 1;
    vi_sum := vi_sum + vi_n;
    end loop;
    dbms_output.put_line(vi_sum);
    exception
    when others then
    dbms_output.put_line('error');
    end;
      

  7.   

    自增写错了……
    create or replace procedure p_sum(ma in number) is
        vi_sum number(6) := 0;
        vi_n   number(4) := 1;begin    while vi_n <= ma
        loop
           vi_sum := vi_sum + vi_n;
           vi_n   := vi_n + 1;           
        end loop;
        dbms_output.put_line(vi_sum);
    exception
        when others then
            dbms_output.put_line('error');
    end;
      

  8.   


    declare
      v_sum int :=0;
      v_num int :=0;
    begin
      while  v_num <= 100 loop   --当v_num<=100时循环
        v_sum := v_sum + v_num;
        v_num := v_num + 1;
      end loop;
      dbms_output.put_line(v_sum);
    end;
      

  9.   


    初始值是不是v_num int :=1;
      

  10.   

    SQL>set serveroutput on
    SQL>Create or Replace Procedure Sum100 (rslt out number) is
          i number;
        begin
          i:=1;
          rslt:=0;
          while i<=100 loop
            rslt:=rslt+i;
            i:=i+1;
          end loop;
        end Sum100;
        /SQL>declare
          sum number:=0;
        begin
          Sum100(sum);
          dbms_output.put_line('1-100求和:'||sum);
        end;
        /
      

  11.   

    select sum(level) sl from dual connect by level<=100这个学习了